Imperva Incapsula
e CapMonster Cloud

Resolução de captcha, instalação no site e testes.

Preços da solução Imperva Incapsula

CAPTCHA
Preço (USD)
$ 2.00
1000 tokens
Você herdou um site com captcha ou outra camada de proteção, mas não tem acesso ao código-fonte? Então é normal querer saber qual solução está instalada, se a configuração está correta e como testar tudo.

Neste artigo, procuramos responder a todas as principais dúvidas. Para começar a resolver o problema, o primeiro passo é identificar qual sistema de proteção está sendo utilizado. Para isso, você pode consultar a lista de captchas e sistemas de proteção antibot mais populares, onde há exemplos visuais e sinais principais que ajudam a identificar rapidamente com o que você está lidando.

Se você notar que o seu site utiliza Imperva Incapsula, o passo seguinte é estudar com mais detalhes as suas características e o seu funcionamento. Neste mesmo artigo, você também pode conferir o guia de integração do Imperva Incapsula, para entender por completo como o sistema opera no seu site. Isso permitirá não apenas compreender a proteção atual, mas também planejar adequadamente 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 utiliza 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 requisiçã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 liberado 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 via API normalmente envolve as etapas abaixo:

Criação da tarefaCriação da tarefa
arrow
Envio da requisição APIEnvio da requisição API
arrow
Recebimento do resultadoRecebimento 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 facilitar o trabalho 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 requisiçõ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 o Imperva Cloud Security Console.

2. Confirme o e-mail. Após fazer login, você será direcionado ao 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 escanear 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ção da robustez
Depois da integração, confirme que o sistema de fato protege 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 <span class="font-bold">Política de Privacidade</span> e <span class="font-bold">Termos de Uso</span>. Isso é importante para a transparência e conformidade com os requisitos de segurança.
Conclusão

Se você 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 tem problema! É bem fácil identificar qual tecnologia está sendo usada. Para verificar se tudo está funcionando corretamente, você pode usar o serviço de reconhecimento CapMonster Cloud em um ambiente de testes isolado, para garantir que o mecanismo de processamento de tokens e a lógica de verificação estejam funcionando corretamente.

No caso de Imperva Incapsula, basta identificar o sistema, analisar o comportamento dele e se certificar de que a proteção está funcionando corretamente. No artigo, mostramos como identificar Imperva Incapsula e onde encontrar instruções para a integração ou reconfiguração, para que você consiga manter a proteção com segurança e controlar o funcionamento dela.

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

Perguntas frequentes sobre Imperva Incapsula

As bibliotecas SDK oficiais de JavaScript e Python permitem simplificar a integração em vez de gerenciar manualmente o polling da API de baixo nível.

A lógica geral inclui os seguintes passos:

  1. Crie um ImpervaRequest com websiteURL e um objeto metadata. Esse metadata deve incluir:
    • incapsulaScriptUrl — Nome do arquivo JS Incapsula.
    • incapsulaCookies — Os cookies do Incapsula. Podem ser obtidos na página usando document.cookie ou no cabeçalho da requisição Set-Cookie: "incap_ses_=...; visid_incap_=..."
    • reese84UrlEndpoint (opcional) — Nome do endpoint onde a impressão digital reese84 é enviada; pode ser encontrado entre as requisições e termina com ?d=site.com
  2. Para o cliente JavaScript/Node.js, use Solve() para aguardar uma solução pronta.
  3. A solução retornada contém cookies válidos.

Python segue o mesmo fluxo de trabalho geral.

  1. Crie uma conta Imperva
  2. Abra a Cloud Security Console
  3. Adicione seu site na seção Websites

Imperva então fornece o destino DNS que você deve usar, geralmente como CNAME para o subdomínio que está conectando.

Após a verificação da conexão DNS, Imperva ativa a camada CDN/WAF e roteia o tráfego pela sua infraestrutura antes de encaminhar as requisições ao seu origin.

Para confirmar a configuração, faça uma requisição apenas com cabeçalhos como curl -I https://dev.mysite.com.

Se o tráfego passar corretamente pelo Imperva, a resposta de exemplo inclui os cabeçalhos 403 Forbidden e Set-Cookie, como visid_incap_* e incap_ses_*.

A maioria dos erros de integração Imperva Incapsula é causada por problemas de proxy, cookies, timing ou configuração de regras. Verifique isso primeiro:

  • Error 16: A geolocalização do seu proxy não corresponde à região exigida. Use um proxy do país ou região correta.
  • Domínio ou configuração de regras inválidos: Verifique o domínio de destino, a vinculação de regras WAF e as configurações de integração.
  • Timeout de verificação: Alguns parâmetros de challenge expiram rapidamente, então colete dados frescos da página e envie-os imediatamente.
  • Cookies Imperva expirados: Atualize os cookies antes de tentar a requisição novamente.
  • Incompatibilidade de proxy ou navegador: Use seu próprio proxy e envie o userAgent atual do navegador Windows para a tarefa.
  • Verificações repetidas ou verificação falhada: Revise cookies, região do proxy, sensibilidade das regras e configurações de timeout antes de assumir que o payload está incorreto.

Os parâmetros dinâmicos visid_incap_* e incap_ses_* têm curta duração. Usar cookies expirados faz com que o Imperva emita um challenge repetido ou bloqueie a requisição. A solução é coletar novamente cookies frescos da página e enviar imediatamente uma nova tarefa ao CapMonster Cloud com as incapsulaCookies atualizadas dentro do objeto metadata.

Imperva Incapsula é descrito como uma camada de proteção na nuvem que utiliza reverse proxies seguros e um Web Application Firewall implantado em infraestrutura CDN.

Nesse modelo, o tráfego do site é roteado pelos servidores Imperva, onde as requisições podem ser inspecionadas e a atividade maliciosa filtrada antes de o tráfego chegar ao origin.

Para tornar essa arquitetura eficaz, também recomendamos restringir o acesso direto ao seu servidor e permitir tráfego apenas dos intervalos de IP Imperva quando apropriado.