logo
bars

Imperva Incapsula
y CapMonster Cloud

Resolución de captchas, instalación en el sitio y pruebas.
¿Heredaste un sitio con una captcha u otra capa de protección pero sin acceso al código fuente? Entonces es normal preguntarse: ¿qué solución está instalada, está configurada correctamente y cómo se puede probar?

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.

¿Qué es Incapsula?
¿Qué es Incapsula?
Imperva Incapsula Web Protection es un sistema de protección web basado en la nube para sitios y aplicaciones contra amenazas externas. El sistema utiliza proxies inversos seguros y un Web Application Firewall (WAF), ubicados en todo el mundo en servidores CDN. El sitio se enruta a través de servidores seguros de Imperva, lo que permite verificar cada solicitud y filtrar actividades maliciosas.

Cómo resolver Incapsula a través de CapMonster Cloud

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:

  • Abre la página deseada y asegúrate de que Incapsula presente una verificación.
  • Intenta acceder sin completar la verificación: el sitio debería devolver un error 405 o un desafío (challenge) adicional.
  • Después de pasar la verificación, el acceso debería abrirse sin errores.

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:

Creación de la tareaCreación de la tarea
arrow
Enviar una solicitud APIEnviar una solicitud API
arrow
Recepción del resultadoRecepción del resultado
arrow
Inserción de cookies de Incapsula en la páginaInserción de cookies de Incapsula en la página
arrow
Reconocimiento de Imperva Incapsula utilizando bibliotecas listas para usar
El servicio CapMonster Cloud ofrece bibliotecas listas para facilitar el trabajo en los lenguajes Python y JavaScript (Node.js).
Python
JavaScript
Solución, obtención de parámetros y establecimiento de cookies
Ejemplo en Node.js para el ciclo completo de reconocimiento de captcha en tu página web. Posibles enfoques: usar solicitudes HTTP para obtener el HTML y los parámetros del sistema de protección, enviar la respuesta y procesar el resultado. O mediante herramientas de automatización (por ejemplo, Playwright): abrir la página, esperar la verificación, enviar los parámetros a través del cliente CapMonster Cloud, recibir el resultado, insertar las cookies en el navegador (para pruebas puedes usar tanto datos correctos como incorrectos) y ver el 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) 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);

Cómo conectar Imperva Incapsula a tu sitio
Para orientarte con confianza en el funcionamiento del captcha en tu sitio, entender la lógica de su verificación, volver a conectar o reconfigurar la protección, te recomendamos estudiar esta sección. En ella se describe el proceso de conexión de la protección; esto te ayudará a comprender rápidamente todos los matices.

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.

HowTo Connect image 1

Imperva automáticamente:

  • detectará tu proveedor de DNS,
  • verificará el SSL,
  • comenzará a escanear los registros DNS.

4. Configura los registros DNS. Si Imperva muestra el paso:

Point dev.mysite.com DNS records to Imperva

Haz lo siguiente:

  • Ve al panel de DNS de tu registrador o hosting.
  • Crea o actualiza el registro:


Tipo: CNAME
Nombre: dev (subdominio que estás conectando)
Valor: <tu_host_imperva>.ng.impervadns.net

Ejemplo:

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

Opcional: 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:

  • desplegará la CDN,
  • activará el WAF (Web Application Firewall),
  • creará un certificado HTTPS,
  • activará la protección contra DDoS y bots.

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:

  • permitir el acceso solo desde direcciones IP de Imperva,
  • prohibir conexiones directas (excepto tus propias IP),

Puedes obtener más información en la sección Create Rules.

7. Verifica el funcionamiento del sitio. Después de la activación

  • abre tu subdominio/dominio en el navegador,
  • o usa curl:

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

En 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.

Background
Posibles errores y depuración
Bug Icon
Dominio o regla inválida — El Challenge no se muestra.
Verifica que la Security Rule esté vinculada al dominio y ruta correctos y que no haya conflictos con IncapRules o ACL.
Bug Icon
Tiempo de espera agotado al cargar la página o verificar.
Es posible que el navegador no espere la respuesta de Imperva. Aumenta los tiempos de espera (timeouts) en las pruebas y asegúrate de que el backend responda lo suficientemente rápido.
Bug Icon
Cookies de Imperva caducadas.
Los valores obsoletos de visid_incap, incap_ses, nlbi provocan un Challenge repetido o un bloqueo.
Bug Icon
Reglas excesivamente sensibles.
Las firmas estrictas pueden bloquear a visitantes reales de tu sitio.
Bug Icon
Configuración incorrecta.
Configuraciones o reglas incorrectas que no tienen en cuenta las particularidades del sitio causan bloqueos erróneos y falsos positivos.
Pruebas de resistencia de la protección
Después de la integración, asegúrate de que el sistema realmente proteja el sitio contra acciones automatizadas.
Consejos de seguridad y optimización
Configura el WAF y las Políticas de Seguridad según el nivel de riesgo. Utiliza Managed Rules, Bot Protection y reglas personalizadas para un control más preciso.
Registra los eventos de seguridad y las activaciones del WAF para identificar falsos positivos y analizar las causas de los bloqueos.
Para mayor transparencia, agrega enlaces a la <b>Política de Privacidad</b> y a los <b>Términos de Uso</b>. Esto es importante para la transparencia y el cumplimiento de los requisitos de seguridad.
Conclusión

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.

Conclusion
Enlaces útiles
DocIconDocumentación de Imperva IncapsulaDocIconIngreso a Cloud Security ConsoleDocIconDocumentación de CapMonster Cloud (trabajo con Imperva Incapsula)