logo
bars

Imperva Incapsula
e CapMonster Cloud

Solução de captcha, instalação no site e testes.
Herdou um site com captcha ou outra proteção mas sem acesso ao código-fonte? É natural perguntar qual solução está instalada, se está configurada corretamente e como testá-la.

Neste artigo procurámos responder a todas as questões importantes. Para começar a resolver o problema, o primeiro passo é identificar que sistema de proteção está a ser utilizado. Para isso, pode consultar a lista de captchas e sistemas de proteção antibot mais populares, onde encontrará exemplos visuais e sinais principais que ajudam a perceber rapidamente com o que está a lidar.

Se verificar que o seu site utiliza Imperva Incapsula, o passo seguinte é analisar mais detalhadamente as suas características e o seu funcionamento. Neste mesmo artigo também pode consultar o guia de integração de Imperva Incapsula, para compreender totalmente como o sistema funciona no seu site. Isto permitirá não só entender a proteção atual, como também planear corretamente a sua manutenção.

O que é Incapsula
O que é Incapsula
Imperva Incapsula Web Protection é um sistema de proteção web baseado em nuvem para sites e aplicativos contra ameaças externas. O sistema usa proxies reversos seguros e um Web Application Firewall (WAF), localizados em todo o mundo em servidores CDN. O site é roteado através de servidores seguros da Imperva, o que permite verificar cada solicitação e filtrar atividades maliciosas.

Como resolver Incapsula via CapMonster Cloud

Ao testar páginas protegidas por Imperva Incapsula, muitas vezes é necessário garantir que a proteção esteja funcionando corretamente e que o sistema filtre adequadamente o tráfego suspeito.

Você pode verificar manualmente o funcionamento da proteção no seu site:

  • Abra a página desejada e certifique-se de que o Incapsula apresenta uma verificação.
  • Tente acessar sem completar a verificação — o site deve retornar um erro 405 ou um desafio (challenge) adicional.
  • Após passar na verificação, o acesso deve ser aberto sem erros.

Para automatizar tais verificações, você pode usar serviços como o CapMonster Cloud.

O CapMonster aceita parâmetros do desafio Imperva (por exemplo, cookie _incap_, dados do HTML e scripts), processa-os e retorna cookies válidos prontos, que podem ser inseridos no navegador ou cliente HTTP.

Trabalhar com o CapMonster Cloud através da API normalmente envolve os passos seguintes:

Criação da tarefaCriação da tarefa
arrow
Envio do pedido APIEnvio do pedido API
arrow
Receção do resultadoReceção do resultado
arrow
Injeção de cookies Incapsula na páginaInjeção de cookies Incapsula na página
arrow
Reconhecimento do Imperva Incapsula usando bibliotecas prontas
O serviço CapMonster Cloud fornece bibliotecas prontas para trabalho conveniente nas linguagens Python e JavaScript (Node.js).
Python
JavaScript
Solução, obtenção de parâmetros e definição de cookies
Exemplo em Node.js para o ciclo completo de reconhecimento de captcha na sua página web. Abordagens possíveis: usar solicitações HTTP para obter HTML e parâmetros do sistema de proteção, enviar a resposta e processar o resultado. Ou usando ferramentas de automação (por exemplo, Playwright) — abrir a página, aguardar a verificação, enviar parâmetros via cliente CapMonster Cloud, receber o resultado, inserir cookies no navegador (para testes você pode usar tanto dados corretos quanto incorretos) e ver o resultado.
// npm install playwright @zennolab_com/capmonstercloud-client
// npx playwright install chromium

import { chromium } from "playwright";
import { CapMonsterCloudClientFactory, ClientOptions, ImpervaRequest } from '@zennolab_com/capmonstercloud-client';

async function main() {
    // 1) Configurações
    const TARGET_URL = "https://example.com";
    const API_KEY = "YOUR_CAPMONSTER_API_KEY";

    const proxy = {
        proxyType: "http",
        proxyAddress: "PROXY_IP",
        proxyPort: 8080,
        proxyLogin: "PROXY_USER",
        proxyPassword: "PROXY_PASS"
    };

    // 2) Abrimos o site e coletamos cookies Imperva
    const browser = await chromium.launch({
        headless: true,
        proxy: {
            server: `${proxy.proxyType}://${proxy.proxyAddress}:${proxy.proxyPort}`,
            username: proxy.proxyLogin,
            password: proxy.proxyPassword
        }
    });

    const page = await browser.newPage();
    await page.goto(TARGET_URL, { waitUntil: "networkidle" });

    const cookies = await page.context().cookies();
    const impervaCookiesString = cookies
        .filter(c => c.name.startsWith("visid_incap_") || c.name.startsWith("incap_ses_"))
        .map(c => `${c.name}=${c.value}`)
        .join("; ");

    console.log("Cookies Imperva da página atual:", impervaCookiesString);

    await browser.close();

    // 3) Resolvemos o desafio Imperva
    const cmcClient = CapMonsterCloudClientFactory.Create(
        new ClientOptions({ clientKey: API_KEY })
    );

    const impervaRequest = new ImpervaRequest({
        websiteURL: TARGET_URL,
        userAgent: "USER_AGENT_STRING",
        metadata: {
            incapsulaScriptUrl: "_Incapsula_Resource?example_param",
            incapsulaCookies: impervaCookiesString
        },
        proxy
    });

    const result = await cmcClient.Solve(impervaRequest);
    console.log("Solução:", result);

    // 4) Substituímos os cookies recebidos
    const domain = new URL(TARGET_URL).hostname;
    const solutionCookiesObj = result.solution.domains[domain].cookies;

    const solutionCookies = Object.entries(solutionCookiesObj).map(([name, value]) => ({
        name,
        value,
        domain: ".your-domain",
        path: "/",
        secure: true,
        httpOnly: false
    }));

    // 5) Definição de cookies e abertura da página
    const browser2 = await chromium.launch({
        headless: false,
        proxy: {
            server: `${proxy.proxyType}://${proxy.proxyAddress}:${proxy.proxyPort}`,
            username: proxy.proxyLogin,
            password: proxy.proxyPassword
        }
    });

    const context2 = await browser2.newContext();
    await context2.addCookies(solutionCookies);

    const page2 = await context2.newPage();
    const resp2 = await page2.goto(TARGET_URL, { waitUntil: "networkidle" });

    // Saída do status da página final (opcional)
    // console.log("Status da página final após definir cookies:", resp2?.status());

    // …ou captura de tela final
    // await page2.screenshot({ path: "final_page.png" });

    console.log("Página carregada com cookies Imperva aplicados.");
}

main().catch(console.error);

Como conectar o Imperva Incapsula ao seu site
Para se orientar com confiança no funcionamento do captcha no seu site, entender a lógica de sua verificação, reconectar ou reconfigurar a proteção, recomendamos estudar esta seção. Nela é descrito o processo de conexão da proteção — isso ajudará você a entender rapidamente todas as nuances.

1. Crie uma conta (use seu e-mail corporativo para o registro) e vá para a Imperva Cloud Security Console.

2. Confirme o e-mail. Após fazer login, você irá para o painel de controle (você pode saber mais sobre o trabalho com o Security Console na documentação).

3. Abra a seção Websites e insira o domínio real do seu site.

HowTo Connect image 1

A Imperva automaticamente:

  • detectará seu provedor DNS,
  • verificará o SSL,
  • começará a verificar os registros DNS.

4. Configure os registros DNS. Se a Imperva mostrar a etapa:

Point dev.mysite.com DNS records to Imperva

Faça o seguinte:

  • Vá ao painel DNS do seu registrador ou hospedagem.
  • Crie ou atualize o registro:


Tipo: CNAME
Nome: dev (subdomínio que você está conectando)
Valor: <seu_host_imperva>.ng.impervadns.net

Exemplo:

dev.mysite.com > CNAME > xivaxeo.ng.impervadns.net

Opcional: ative o suporte para clientes Non-SNI

Se a Imperva mostrar a notificação:

If you expect Non-SNI traffic…

Isso diz respeito a clientes obsoletos e integrações específicas. Se o seu site for padrão, esta etapa pode ser ignorada.

Se necessário, ative:

CDN > Delivery > Support Non-SNI clients

5. Aguarde a verificação de DNS. A Imperva ativará a proteção e o SSL.

Quando o DNS se conectar, a Imperva automaticamente:

  • implantará a CDN,
  • ativará o WAF (Web Application Firewall),
  • criará um certificado HTTPS,
  • ativará a proteção contra DDoS e bots.

6. Restrinja o acesso direto ao seu servidor (recomendado)

Para que o tráfego passe apenas pela Imperva, no seu servidor você deve:

  • permitir o acesso apenas a partir de endereços IP da Imperva,
  • proibir conexões diretas (exceto seus próprios IPs),

Você pode saber mais na seção Create Rules.

7. Verifique o funcionamento do site. Após a ativação

  • abra seu subdomínio/domínio no navegador,
  • ou use o curl:

curl -I https://dev.mysite.com

Nos cabeçalhos devem aparecer linhas como:


HTTP/1.1 403 Forbidden
Content-Type: text/html
Cache-Control: no-cache, no-store
Connection: close
Content-Length: 1234
X-Iinfo: 00-00000000-0 0NNN RT(1234567890 0) q(0 -1 -1 1) r(0 -1) B16(0,0,0) U24
Strict-Transport-Security: max-age=31536000
Set-Cookie: visid_incap_00000000000000000000000000000000=ABCDEFG1234567890TESTCOOKIE; expires=Wed, 11 Nov 2026 23:41:40 GMT; HttpOnly; path=/; Domain=.example.com; Secure; SameSite=None
Set-Cookie: incap_ses_0000_00000000=TESTSESSION1234567890; path=/; Domain=.example.com; Secure; SameSite=None

Isso significa que o tráfego está passando pela Imperva.

Background
Possíveis erros e depuração
Bug Icon
Domínio ou regra inválida — Challenge não é exibido.
Verifique se a Security Rule está vinculada ao domínio e caminho corretos e se não há conflitos com IncapRules ou ACL.
Bug Icon
Tempo limite (timeout) de carregamento da página ou verificação.
O navegador pode não aguardar a resposta da Imperva. Aumente os tempos limite (timeouts) nos testes e certifique-se de que o backend responda rápido o suficiente.
Bug Icon
Cookies Imperva expirados.
Valores obsoletos de visid_incap, incap_ses, nlbi causam um Challenge repetido ou bloqueio.
Bug Icon
Regras excessivamente sensíveis.
Assinaturas rígidas podem bloquear visitantes reais do seu site.
Bug Icon
Configuração incorreta.
Configurações ou regras incorretas que não levam em conta as especificidades do site causam bloqueios errôneos e falsos positivos.
Verificações de robustez
Depois da integração, certifique-se de que o sistema protege efetivamente o site contra ações automatizadas.
Recomendações de segurança e otimização
Configure o WAF e as Políticas de Segurança de acordo com o nível de risco. Use Managed Rules, Bot Protection e regras personalizadas para um controle mais preciso.
Registre eventos de segurança e acionamentos do WAF para identificar falsos positivos e analisar as causas dos bloqueios.
Para transparência, adicione links para a <b>Política de Privacidade</b> e <b>Termos de Uso</b>. Isso é importante para a transparência e conformidade com os requisitos de segurança.
Conclusão

Se herdou um site que já tem um captcha ou outro sistema de proteção instalado e não tem acesso ao código, não há problema! É bastante fácil identificar qual a tecnologia que está a ser utilizada. Para verificar se tudo está a funcionar corretamente, pode usar o serviço de reconhecimento CapMonster Cloud num ambiente de teste isolado, para garantir que o mecanismo de processamento de tokens e a lógica de verificação estão a funcionar corretamente.

No caso de Imperva Incapsula, basta identificar o sistema, analisar o seu comportamento e confirmar que a proteção está a funcionar corretamente. No artigo, mostramos como identificar Imperva Incapsula e onde encontrar instruções para a sua integração ou reconfiguração, para que possa manter a proteção com confiança e controlar o seu funcionamento.

Conclusion
Links úteis
DocIconDocumentação Imperva IncapsulaDocIconEntrar no Cloud Security ConsoleDocIconDocumentação CapMonster Cloud (trabalho com Imperva Incapsula)