Imperva Incapsula
e CapMonster Cloud

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

Preços da solução Imperva Incapsula

CAPTCHA
Preço (USD)
$ 2.00
1000 tokens
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 <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 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)

Perguntas frequentes sobre Imperva Incapsula

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

A sua lógica geral inclui os seguintes passos:

  1. Crie um ImpervaRequest com websiteURL e um objeto metadata. Esse metadata deve incluir:
    • incapsulaScriptUrl — Nome do ficheiro JS Incapsula.
    • incapsulaCookies — Os cookies do Incapsula. Podem ser obtidos na página usando document.cookie ou no cabeçalho do pedido Set-Cookie: "incap_ses_=...; visid_incap_=..."
    • reese84UrlEndpoint (opcional) — Nome do endpoint onde a impressão digital reese84 é enviada; pode ser encontrado entre os pedidos 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 devolvida 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 o seu site na secção Websites

Imperva fornece então o destino DNS a utilizar, normalmente como CNAME para o subdomínio que está a ligar.

Após a verificação da ligação DNS, Imperva ativa a camada CDN/WAF e encaminha o tráfego pela sua infraestrutura antes de reencaminhar os pedidos para o seu origin.

Para confirmar a configuração, execute um pedido 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 isto 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 definições de integração.
  • Timeout de verificação: Alguns parâmetros de challenge expiram rapidamente, por isso recolha dados frescos da página e envie-os de imediato.
  • Cookies Imperva expirados: Atualize os cookies antes de repetir o pedido.
  • Incompatibilidade de proxy ou navegador: Use o 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 definiçõ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 o pedido. A solução é recolher 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 cloud que utiliza reverse proxies seguros e um Web Application Firewall implementado em infraestrutura CDN.

Nesse modelo, o tráfego do site é encaminhado pelos servidores Imperva, onde os pedidos podem ser inspecionados 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.