logo
bars

Imperva Incapsula
и CapMonster Cloud

Решение капчи, установка на сайт и тестирование.
Вам достался «по наследству» сайт с подключённой капчей или другой защитой, но доступа к исходному коду нет? В такой ситуации возникают вопросы: какую именно систему защиты использует сайт, правильно ли она установлена и как проверить её работу?

В этой статье мы постарались дать ответы на все вопросы. А начать решение задачи нужно с определения того, какая система защиты используется. Для этого можно обратиться к списку популярных капч и систем антибот-защиты, где представлены визуальные примеры и ключевые признаки, которые могут помочь быстро определить, с чем вы имеете дело.

Если вы обнаружили, что на вашем сайте используется Imperva Incapsula, следующим шагом станет более подробное изучение её свойств и самой работы. Также в этой статье вы можете изучить инструкцию по подключению системы Imperva Incapsula, чтобы полностью разобраться, как она функционирует на вашем сайте. Это позволит не только понимать текущую защиту, но и грамотно планировать её поддержку.

Что такое Incapsula
Что такое Incapsula
Imperva Incapsula Web Protection — это облачная система защиты веб-сайтов и приложений от внешних угроз. Система использует безопасные реверс-прокси и Web Application Firewall (WAF), расположенные по всему миру на серверах CDN. Сайт направляется через защищённые серверы Imperva, что позволяет проверять каждый запрос и фильтровать вредоносные действия.

Как решить Incapsula через CapMonster Cloud

При тестировании страниц, защищённых Imperva Incapsula, нередко требуется убедиться, что защита работает корректно и что система правильно фильтрует подозрительный трафик.

Вы можете вручную проверить работу защиты на своём сайте:

  • Откройте нужную страницу и убедитесь, что Incapsula предъявляет проверку.
  • Попробуйте зайти без выполнения проверки — сайт должен вернуть ошибку 405 или дополнительный челендж.
  • После прохождения проверки доступ должен открыться без ошибок.

Для автоматизации таких проверок можно использовать сервисы вроде CapMonster Cloud.

CapMonster принимает параметры челленджа Imperva (например, cookie _incap_, данные с HTML и скриптов), обрабатывает их у себя и возвращает готовые валидные cookies, которые можно подставить в браузер или HTTP‑клиент.

Работа с CapMonster Cloud через API обычно включает следующие шаги:

Создание задачи (Task)Создание задачи (Task)
arrow
Отправка запроса к APIОтправка запроса к API
arrow
Получение результатаПолучение результата
arrow
Подстановка cookies Incapsula на страницуПодстановка cookies Incapsula на страницу
arrow
Распознавание Imperva Incapsula с использованием готовых библиотек
Сервис CapMonster Cloud предоставляет готовые библиотеки для удобной работы на языках Python, JavaScript (Node.js).
Python
JavaScript
Решение, получение параметров и установка куки
Пример на Node.js для полного цикла распознавания капчи на вашей веб-странице. Возможные подходы: использовать HTTP-запросы для получения HTML и параметров системы защиты, отправить ответ и обработать результат. Или с помощью инструментов для автоматизации (например, Playwright) — открыть страницу, дождаться проверки, отправить параметры через клиент CapMonster Cloud, получить результат, подставить куки в браузер (для тестирования вы можете использовать как правильные, так и некорректные данные) и увидеть результат.
// 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) Настройки
    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) Открываем сайт и собираем Imperva cookies
    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("Imperva cookies с текущей страницы:", impervaCookiesString);

    await browser.close();

    // 3) Решаем Imperva challenge
    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("Решение:", result);

    // 4) Подставляем полученные cookies
    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) Установка cookies и открытие страницы
    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" });

    // Вывод статуса конечной страницы (опционально)
    // console.log("Статус конечной страницы после установки cookies:", resp2?.status());

    // …или итоговый скриншот 
    // await page2.screenshot({ path: "final_page.png" });

    console.log("Страница загружена с применёнными Imperva cookies.");
}

main().catch(console.error);

Как подключить Imperva Incapsula к своему сайту
Чтобы уверенно ориентироваться в работе капчи на вашем сайте, понимать логику её проверки, заново подключить или перенастроить, рекомендуем вам изучить этот раздел. В нём описан процесс подключения защиты — это поможет быстро разобраться во всех нюансах.

1. Создайте аккаунт (при регистрации используйте ваш рабочий email) и перейдите в Imperva Cloud Security Console.

2. Подтвердите email. После входа вы попадёте в панель управления (подробнее о работе с Security Console вы можете узнать в документации).

3. Откройте раздел Websites и введите реальный домен вашего сайта.

HowTo Connect image 1

Imperva автоматически:

  • определит ваш DNS-провайдер,
  • проверит SSL,
  • начнёт сканирование DNS-записей.

4. Настройте DNS записи. Если Imperva покажет шаг:

Point dev.mysite.com DNS records to Imperva

Сделайте следующее:

  • Зайдите в DNS-панель вашего регистратора или хостинга.
  • Создайте или обновите запись:


Тип: CNAME
Имя: dev (поддомен, который вы подключаете)
Значение: <ваш_имперва_хост>.ng.impervadns.net

Пример:

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

Опционально: включите поддержку Non-SNI клиентов

Если Imperva показывает уведомление:

If you expect Non-SNI traffic…

Это касается устаревших клиентов и специфических интеграций.Если ваш сайт обычный, этот шаг можно пропустить.

Если нужно, включите:

CDN > Delivery > Support Non-SNI clients

5. Дождитесь верификации DNS. Imperva активирует защиту и SSL.

Когда DNS подключится, Imperva автоматически:

  • развернёт CDN,
  • активирует WAF (Web Application Firewall),
  • создаст HTTPS-сертификат,
  • включит защиту от DDoS и ботов.

6. Ограничьте прямой доступ к вашему серверу (рекомендуется)

Чтобы трафик шел только через Imperva, на вашем сервере стоит:

  • разрешить доступ только с IP-адресов Imperva,
  • запретить прямые подключения (кроме собственных IP),

Более подробно можете ознакомиться в разделе Create Rules.

7. Проверьте работу сайта. После активации

  • откройте ваш поддомен/домен в браузере,
  • или используйте curl:

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

В заголовках должны появиться строки вида:


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

Это означает, что трафик проходит через Imperva.

Background
Возможные ошибки и отладка
Bug Icon
Неверный домен или правило — Challenge не показывается.
Проверьте, что Security Rule привязано к нужному домену, пути и что нет конфликтов с IncapRules или ACL.
Bug Icon
Таймаут загрузки страницы или проверки.
Браузер может не дождаться ответа Imperva. Увеличьте таймауты в тестах и убедитесь, что backend отвечает достаточно быстро.
Bug Icon
Просроченные Imperva-cookies.
Устаревшие visid_incap, incap_ses, nlbi вызывают повторный Challenge или блокировку.
Bug Icon
Чрезмерно чувствительные правила.
Строгие сигнатуры могут блокировать реальных посетителей вашего сайта.
Bug Icon
Неверная конфигурация.
Неправильные настройки или правила, не учитывающие особенности сайта, вызывают ошибочные блокировки и ложные срабатывания.
Проверка устойчивости защиты
После интеграции важно убедиться, что система действительно защищает сайт от автоматических действий.
Рекомендации по безопасности и оптимизации
Настройте WAF и Security Policies согласно уровню риска. Используйте Managed Rules, Bot Protection и кастомные правила для более точного контроля.
Логируйте события безопасности и срабатывания WAF, чтобы выявлять ложные срабатывания и анализировать причины блокировок.
Для прозрачности добавьте ссылки на <b>Политику конфиденциальности</b> и <b>Условия использования</b>. Это важно для прозрачности и соответствия требованиям безопасности.
Заключение

Если вам достался сайт с уже установленной капчей или другой системой защиты и при этом нет доступа к коду — ничего страшного! Определить, какая именно технология используется, достаточно легко. А для проверки корректности работы можно использовать сервис распознавания CapMonster Cloud в изолированной тестовой среде, чтобы убедиться, что механизм обработки токенов и логика проверки функционируют корректно.

В случае с Imperva Incapsula — достаточно распознать систему, изучить её поведение и убедиться, что защита функционирует корректно. В статье мы показали, как определить Imperva Incapsula и где найти инструкции по её подключению или перенастройке, чтобы уверенно поддерживать защиту и контролировать её работу.

Conclusion
Полезные ссылки
DocIconДокументация Imperva IncapsulaDocIconВход в Cloud Security ConsoleDocIconДокументация CapMonster Cloud (работа с Imperva Incapsula)