logo
bars

Imperva Incapsula
et CapMonster Cloud

Résolution de captcha, installation sur le site et tests.
Vous avez hérité d’un site doté d’une captcha ou d’une autre couche de protection mais sans accès au code source ? Il est alors naturel de se demander quelle solution est installée, si elle est correctement configurée et comment la tester.

Dans cet article, nous avons essayé de répondre à toutes les questions essentielles. Pour commencer à résoudre le problème, il faut d’abord déterminer quel système de protection est utilisé. Pour cela, vous pouvez consulter la liste des captchas et systèmes de protection antibot les plus populaires, qui présente des exemples visuels et des caractéristiques clés permettant d’identifier rapidement avec quoi vous avez affaire.

Si vous constatez que votre site utilise Imperva Incapsula, l’étape suivante consiste à étudier plus en détail ses propriétés et son fonctionnement. Dans cet article, vous pouvez également consulter le guide d’intégration de Imperva Incapsula afin de comprendre pleinement la façon dont il fonctionne sur votre site. Cela vous permettra non seulement de mieux connaître la protection en place, mais aussi de planifier correctement sa maintenance.

Qu'est-ce qu'Incapsula
Qu'est-ce qu'Incapsula
Imperva Incapsula Web Protection est un système de protection web basé sur le cloud pour les sites et applications contre les menaces externes. Le système utilise des proxys inverses sécurisés et un Web Application Firewall (WAF), situés dans le monde entier sur des serveurs CDN. Le site est dirigé via des serveurs sécurisés Imperva, ce qui permet de vérifier chaque requête et de filtrer les activités malveillantes.

Comment résoudre Incapsula via CapMonster Cloud

Lors du test de pages protégées par Imperva Incapsula, il est souvent nécessaire de s'assurer que la protection fonctionne correctement et que le système filtre correctement le trafic suspect.

Vous pouvez vérifier manuellement le fonctionnement de la protection sur votre site :

  • Ouvrez la page souhaitée et assurez-vous qu'Incapsula présente une vérification.
  • Essayez d'accéder sans effectuer la vérification — le site doit renvoyer une erreur 405 ou un challenge supplémentaire.
  • Après avoir passé la vérification, l'accès doit s'ouvrir sans erreur.

Pour automatiser ces vérifications, vous pouvez utiliser des services comme CapMonster Cloud.

CapMonster accepte les paramètres du challenge Imperva (par exemple, le cookie _incap_, les données du HTML et des scripts), les traite et renvoie des cookies valides prêts à l'emploi, qui peuvent être insérés dans un navigateur ou un client HTTP.

Travailler avec CapMonster Cloud via l’API comprend généralement les étapes suivantes :

Création de la tâcheCréation de la tâche
arrow
Envoyer une requête APIEnvoyer une requête API
arrow
Réception du résultatRéception du résultat
arrow
Injection des cookies Incapsula dans la pageInjection des cookies Incapsula dans la page
arrow
Reconnaissance d'Imperva Incapsula à l'aide de bibliothèques prêtes à l'emploi
Le service CapMonster Cloud fournit des bibliothèques prêtes à l'emploi pour travailler facilement avec les langages Python et JavaScript (Node.js).
Python
JavaScript
Résolution, obtention des paramètres et définition des cookies
Exemple en Node.js pour le cycle complet de reconnaissance de captcha sur votre page web. Approches possibles : utiliser des requêtes HTTP pour obtenir le HTML et les paramètres du système de protection, envoyer la réponse et traiter le résultat. Ou à l'aide d'outils d'automatisation (par exemple, Playwright) — ouvrir la page, attendre la vérification, envoyer les paramètres via le client CapMonster Cloud, recevoir le résultat, insérer les cookies dans le navigateur (pour les tests, vous pouvez utiliser des données correctes ou incorrectes) et voir le résultat.
// 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) Paramètres
    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) Nous ouvrons le site et collectons les 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 de la page actuelle :", impervaCookiesString);

    await browser.close();

    // 3) Nous résolvons le défi 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("Solution :", result);

    // 4) Nous insérons les cookies reçus
    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) Définition des cookies et ouverture de la page
    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" });

    // Sortie du statut de la page finale (optionnel)
    // console.log("Statut de la page finale après définition des cookies :", resp2?.status());

    // …ou capture d'écran finale
    // await page2.screenshot({ path: "final_page.png" });

    console.log("Page chargée avec les cookies Imperva appliqués.");
}

main().catch(console.error);

Comment connecter Imperva Incapsula à votre site
Pour vous orienter en toute confiance dans le fonctionnement du captcha sur votre site, comprendre la logique de sa vérification, reconnecter ou reconfigurer la protection, nous vous recommandons d'étudier cette section. Elle décrit le processus de connexion de la protection — cela vous aidera à comprendre rapidement toutes les nuances.

1. Créez un compte (utilisez votre e-mail professionnel pour l'inscription) et accédez à la Imperva Cloud Security Console.

2. Confirmez l'e-mail. Après connexion, vous accéderez au panneau de configuration (vous pouvez en savoir plus sur le travail avec la Security Console dans la documentation).

3. Ouvrez la section Websites et entrez le domaine réel de votre site.

HowTo Connect image 1

Imperva va automatiquement :

  • détecter votre fournisseur DNS,
  • vérifier le SSL,
  • commencer à scanner les enregistrements DNS.

4. Configurez les enregistrements DNS. Si Imperva affiche l'étape :

Point dev.mysite.com DNS records to Imperva

Faites ce qui suit :

  • Allez dans le panneau DNS de votre registraire ou hébergeur.
  • Créez ou mettez à jour l'enregistrement :


Type : CNAME
Nom : dev (sous-domaine que vous connectez)
Valeur : <votre_hote_imperva>.ng.impervadns.net

Exemple :

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

Optionnel : activez le support pour les clients Non-SNI

Si Imperva affiche la notification :

If you expect Non-SNI traffic…

Cela concerne les clients obsolètes et les intégrations spécifiques. Si votre site est standard, cette étape peut être ignorée.

Si nécessaire, activez :

CDN > Delivery > Support Non-SNI clients

5. Attendez la vérification DNS. Imperva activera la protection et le SSL.

Lorsque le DNS se connecte, Imperva va automatiquement :

  • déployer le CDN,
  • activer le WAF (Web Application Firewall),
  • créer un certificat HTTPS,
  • activer la protection contre les attaques DDoS et les bots.

6. Restreignez l'accès direct à votre serveur (recommandé)

Pour que le trafic passe uniquement par Imperva, vous devez sur votre serveur :

  • autoriser l'accès uniquement depuis les adresses IP d'Imperva,
  • interdire les connexions directes (sauf vos propres IP),

Vous pouvez en savoir plus dans la section Create Rules.

7. Vérifiez le fonctionnement du site. Après l'activation

  • ouvrez votre sous-domaine/domaine dans un navigateur,
  • ou utilisez curl :

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

Les en-têtes doivent contenir des lignes du type :


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

Cela signifie que le trafic passe par Imperva.

Background
Erreurs possibles et débogage
Bug Icon
Domaine ou règle invalide — Le Challenge ne s'affiche pas.
Vérifiez que la Security Rule est liée au bon domaine et au bon chemin, et qu'il n'y a pas de conflits avec IncapRules ou ACL.
Bug Icon
Délai d'attente dépassé lors du chargement de la page ou de la vérification.
Le navigateur peut ne pas attendre la réponse d'Imperva. Augmentez les délais (timeouts) dans les tests et assurez-vous que le backend répond assez rapidement.
Bug Icon
Cookies Imperva expirés.
Des valeurs obsolètes de visid_incap, incap_ses, nlbi provoquent un Challenge répété ou un blocage.
Bug Icon
Règles excessivement sensibles.
Des signatures strictes peuvent bloquer les visiteurs réels de votre site.
Bug Icon
Configuration incorrecte.
Des paramètres ou règles incorrects ne tenant pas compte des spécificités du site provoquent des blocages erronés et des faux positifs.
Tests de robustesse de la protection
Après l’intégration, vérifiez que le système protège réellement le site contre les actions automatisées.
Conseils de sécurité et d’optimisation
Configurez le WAF et les politiques de sécurité selon le niveau de risque. Utilisez Managed Rules, Bot Protection et des règles personnalisées pour un contrôle plus précis.
Journalisez les événements de sécurité et les déclenchements du WAF pour identifier les faux positifs et analyser les causes des blocages.
Pour la transparence, ajoutez des liens vers la <b>Politique de confidentialité</b> et les <b>Conditions d'utilisation</b>. C'est important pour la transparence et la conformité aux exigences de sécurité.
Conclusion

Si vous avez récupéré un site avec un captcha ou un autre système de protection déjà installé, mais sans accès au code, pas de panique ! Il est assez simple d’identifier quelle technologie est utilisée. Pour vérifier que tout fonctionne correctement, vous pouvez utiliser le service de reconnaissance CapMonster Cloud dans un environnement de test isolé, afin de vous assurer que le mécanisme de traitement des jetons et la logique de vérification fonctionnent correctement.

Dans le cas de Imperva Incapsula, il suffit d’identifier le système, d’étudier son comportement et de vérifier que la protection fonctionne correctement. Dans cet article, nous avons montré comment reconnaître Imperva Incapsula et où trouver les instructions pour son intégration ou sa reconfiguration, afin de maintenir la protection en toute confiance et de garder son fonctionnement sous contrôle.

Conclusion
Liens utiles
DocIconDocumentation Imperva IncapsulaDocIconConnexion à la Cloud Security ConsoleDocIconDocumentation CapMonster Cloud (travail avec Imperva Incapsula)