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.
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 :
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 :
Dans la requête pour résoudre Incapsula, les paramètres suivants doivent être spécifiés :
type - CustomTask;
class - Imperva;
websiteURL - adresse de la page principale où se trouve Incapsula;
incapsulaScriptUrl (dans les métadonnées) - "incapsulaScriptUrl": "_Incapsula_Resource?SWJIYLWA=719d34d31c8e3a6e6fffd425f7e032f3" — nom du fichier js d'Incapsula;
incapsulaCookies (dans les métadonnées) - vos cookies d'Incapsula. Peuvent être obtenus sur la page via document.cookie ou dans l'en-tête de la requête Set-Cookie : "incap_sess_*=...; visid_incap_*=..." (voir exemple de requête /createTask);
reese84UrlEndpoint (dans les métadonnées) - nom du point de terminaison (endpoint) où l'empreinte reese84 est envoyée;
userAgent - User-Agent du navigateur. Transmettez uniquement un UA actuel de l'OS Windows;
De plus, l'utilisation de vos propres proxys est requise pour cette tâche :
proxyType :
proxyAddress - Adresse IP du proxy IPv4/IPv6;
proxyPort - port du proxy;
proxyLogin - identifiant du serveur proxy;
proxyPassword - mot de passe du serveur 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"
}
}
}
}
}Les données reçues de CapMonster Cloud (cookies Incapsula valides) peuvent être insérées dans le contexte du navigateur ou un client HTTP. Après cela, le site reconnaît la requête comme vérifiée et laisse passer l'utilisateur sans challenges supplémentaires.
Pour l'automatisation et les tests, il est pratique d'utiliser Puppeteer, Selenium ou Playwright, car ils permettent de :
Ainsi, vous pouvez vérifier l'exactitude de la protection et vous assurer que le site traite correctement les sessions Incapsula valides.
// 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);
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.

Imperva va automatiquement :
4. Configurez les enregistrements DNS. Si Imperva affiche l'étape :
Point dev.mysite.com DNS records to ImpervaFaites ce qui suit :
Type : CNAME
Nom : dev (sous-domaine que vous connectez)
Valeur : <votre_hote_imperva>.ng.impervadns.net
Exemple :
dev.mysite.com > CNAME > xivaxeo.ng.impervadns.netOptionnel : 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 :
6. Restreignez l'accès direct à votre serveur (recommandé)
Pour que le trafic passe uniquement par Imperva, vous devez sur votre serveur :
Vous pouvez en savoir plus dans la section Create Rules.
7. Vérifiez le fonctionnement du site. Après l'activation
curl -I https://dev.mysite.comLes 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.
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.