En este artículo hemos intentado responder a todas las preguntas clave. Para empezar a resolver la tarea, primero hay que determinar qué sistema de protección se está utilizando. Para ello, puedes consultar la lista de captchas y sistemas de protección antibot más populares, donde se muestran ejemplos visuales y señales clave que te ayudarán a identificar rápidamente con qué estás tratando.
Si descubres que tu sitio web utiliza Imperva Incapsula, el siguiente paso será analizar con más detalle sus propiedades y su funcionamiento. En este mismo artículo también puedes consultar la guía de integración de Imperva Incapsula para comprender por completo cómo funciona en tu sitio. Esto te permitirá no solo entender la protección actual, sino también planificar correctamente su mantenimiento.
Al probar páginas protegidas por Imperva Incapsula, a menudo es necesario asegurarse de que la protección funciona correctamente y que el sistema filtra adecuadamente el tráfico sospechoso.
Puedes verificar manualmente el funcionamiento de la protección en tu sitio:
Para automatizar estas comprobaciones, puedes utilizar servicios como CapMonster Cloud.
CapMonster acepta los parámetros del desafío de Imperva (por ejemplo, la cookie _incap_, datos del HTML y scripts), los procesa y devuelve cookies válidas listas para usar, que se pueden insertar en el navegador o cliente HTTP.
Trabajar con CapMonster Cloud mediante la API suele implicar los siguientes pasos:
En la solicitud para resolver Incapsula, es necesario especificar los siguientes parámetros:
type - CustomTask;
class - Imperva;
websiteURL - dirección de la página principal donde se encuentra Incapsula;
incapsulaScriptUrl (dentro de metadata) - "incapsulaScriptUrl": "_Incapsula_Resource?SWJIYLWA=719d34d31c8e3a6e6fffd425f7e032f3" — nombre del archivo js de Incapsula;
incapsulaCookies (dentro de metadata) - tus cookies de Incapsula. Se pueden obtener en la página usando document.cookie o en el encabezado de la respuesta Set-Cookie: "incap_sess_*=...; visid_incap_*=..." (ver ejemplo de solicitud /createTask);
reese84UrlEndpoint (dentro de metadata) - nombre del endpoint al que se envía el fingerprint reese84;
userAgent - User-Agent del navegador. Envía solo un UA actual del SO Windows;
Además, para esta tarea es necesario el uso de tus propios proxies:
proxyType :
proxyAddress - Dirección IP del proxy IPv4/IPv6;
proxyPort - puerto del proxy;
proxyLogin - usuario del servidor proxy;
proxyPassword - contraseña del 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"
}
}
}
}
}Los datos recibidos de CapMonster Cloud (cookies válidas de Incapsula) se pueden insertar en el contexto del navegador o cliente HTTP. Después de esto, el sitio reconoce la solicitud como verificada y permite el paso del usuario sin desafíos adicionales.
Para la automatización y pruebas es conveniente usar Puppeteer, Selenium o Playwright, ya que permiten:
Así se puede verificar la corrección de la protección y asegurarse de que el sitio procesa correctamente las sesiones válidas de 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) Configuraciones
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 el sitio y recopilamos cookies de 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 de Imperva de la página actual:", impervaCookiesString);
await browser.close();
// 3) Resolvemos el desafío de 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("Solución:", result);
// 4) Insertamos las cookies recibidas
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) Establecimiento de cookies y apertura de la 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" });
// Salida del estado de la página final (opcional)
// console.log("Estado de la página final después de establecer cookies:", resp2?.status());
// …o captura de pantalla final
// await page2.screenshot({ path: "final_page.png" });
console.log("Página cargada con cookies de Imperva aplicadas.");
}
main().catch(console.error);
1. Crea una cuenta (usa tu correo corporativo para el registro) y ve a la Imperva Cloud Security Console.
2. Confirma el correo electrónico. Después de iniciar sesión, accederás al panel de control (puedes obtener más información sobre el trabajo con Security Console en la documentación).
3. Abre la sección Websites e introduce el dominio real de tu sitio.

Imperva automáticamente:
4. Configura los registros DNS. Si Imperva muestra el paso:
Point dev.mysite.com DNS records to ImpervaHaz lo siguiente:
Tipo: CNAME
Nombre: dev (subdominio que estás conectando)
Valor: <tu_host_imperva>.ng.impervadns.net
Ejemplo:
dev.mysite.com > CNAME > xivaxeo.ng.impervadns.netOpcional: activa el soporte para clientes Non-SNI
Si Imperva muestra la notificación:
If you expect Non-SNI traffic…
Esto concierne a clientes obsoletos e integraciones específicas. Si tu sitio es estándar, este paso se puede omitir.
Si es necesario, activa:
CDN > Delivery > Support Non-SNI clients
5. Espera la verificación de DNS. Imperva activará la protección y el SSL.
Cuando el DNS se conecte, Imperva automáticamente:
6. Restringe el acceso directo a tu servidor (recomendado)
Para que el tráfico pase solo a través de Imperva, en tu servidor debes:
Puedes obtener más información en la sección Create Rules.
7. Verifica el funcionamiento del sitio. Después de la activación
curl -I https://dev.mysite.comEn los encabezados deben aparecer líneas 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
Esto significa que el tráfico está pasando a través de Imperva.
Si has heredado un sitio web que ya tiene un captcha u otro sistema de protección instalado y no tienes acceso al código, no pasa nada. Identificar qué tecnología se está utilizando es bastante sencillo. Para comprobar que todo funciona correctamente, puedes usar el servicio de reconocimiento CapMonster Cloud en un entorno de pruebas aislado, para asegurarte de que el mecanismo de procesamiento de tokens y la lógica de verificación funcionan correctamente.
En el caso de Imperva Incapsula, basta con detectar el sistema, analizar su comportamiento y confirmar que la protección funciona correctamente. En el artículo hemos mostrado cómo identificar Imperva Incapsula y dónde encontrar las instrucciones para su integración o reconfiguración, de modo que puedas mantener la protección con confianza y controlar su funcionamiento.