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.
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:
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:
Na solicitação para resolver o Incapsula, é necessário especificar os seguintes parâmetros:
type - CustomTask;
class - Imperva;
websiteURL - endereço da página principal onde o Incapsula está localizado;
incapsulaScriptUrl (dentro dos metadados) - "incapsulaScriptUrl": "_Incapsula_Resource?SWJIYLWA=719d34d31c8e3a6e6fffd425f7e032f3" — nome do arquivo js do Incapsula;
incapsulaCookies (dentro dos metadados) - seus cookies do Incapsula. Podem ser obtidos na página usando document.cookie ou no cabeçalho da solicitação Set-Cookie: "incap_sess_*=...; visid_incap_*=..." (veja o exemplo de solicitação /createTask);
reese84UrlEndpoint (dentro dos metadados) - nome do endpoint para onde o fingerprint reese84 é enviado;
userAgent - User-Agent do navegador. Envie apenas um UA atual do SO Windows;
Também, para esta tarefa, é necessário o uso de seus próprios proxies:
proxyType :
proxyAddress - Endereço IP do proxy IPv4/IPv6;
proxyPort - porta do proxy;
proxyLogin - login do servidor proxy;
proxyPassword - senha do servidor proxy.
https://api.capmonster.cloud/createTask{
"clientKey": "API_KEY",
"task": {
"type": "CustomTask",
"class": "Imperva",
"websiteURL": "https://example.com",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36",
"metadata": {
"incapsulaScriptUrl": "_Incapsula_Resource?SWJIYLWA=719d34d31c8e3a6e6fffd425f7e032f3",
"incapsulaCookies": "incap_ses_1166_2930313=br7iX33ZNCtf3HlpEXcuEDzz72cAAAAA0suDnBGrq/iA0J4oERYzjQ==; visid_incap_2930313=P3hgPVm9S8Oond1L0sXhZqfK72cAAAAAQUIPAAAAAABoMSY9xZ34RvRseJRiY6s+;",
"reese84UrlEndpoint": "Built-with-the-For-hopence-Hurleysurfecting-the-"
},
"proxyType": "http",
"proxyAddress": "8.8.8.8",
"proxyPort": 8080,
"proxyLogin": "proxyLoginHere",
"proxyPassword": "proxyPasswordHere"
}
}{
"errorId":0,
"taskId":407533072
}https://api.capmonster.cloud/getTaskResult{
"clientKey":"API_KEY",
"taskId": 407533072
}{
"errorId":0,
"status":"ready",
"solution": {
"domains": {
"https://example.com": {
"cookies": {
"___utmvc": "NMB+nRa4inxXNeXuh...MWIwNmU3MQ==; Max-Age=31536000; Domain=.site.com; Path=/; Secure; SameSite=Lax"
}
}
}
}
}Os dados recebidos do CapMonster Cloud (cookies válidos do Incapsula) podem ser inseridos no contexto do navegador ou cliente HTTP. Depois disso, o site reconhece a solicitação como verificada e deixa o usuário passar sem desafios adicionais.
Para automação e testes, é conveniente usar Puppeteer, Selenium ou Playwright, pois permitem:
Assim, é possível verificar a correção da proteção e garantir que o site processe corretamente sessões válidas do Incapsula.
// 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);
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.

A Imperva automaticamente:
4. Configure os registros DNS. Se a Imperva mostrar a etapa:
Point dev.mysite.com DNS records to ImpervaFaça o seguinte:
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.netOpcional: 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:
6. Restrinja o acesso direto ao seu servidor (recomendado)
Para que o tráfego passe apenas pela Imperva, no seu servidor você deve:
Você pode saber mais na seção Create Rules.
7. Verifique o funcionamento do site. Após a ativação
curl -I https://dev.mysite.comNos 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.
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.