In questo articolo abbiamo cercato di rispondere a tutte le domande principali. Il primo passo per risolvere il problema è capire quale sistema di protezione viene utilizzato. A questo scopo puoi consultare l’elenco dei captcha e dei sistemi di protezione antibot più diffusi, dove trovi esempi visivi e caratteristiche chiave che ti aiutano a identificare rapidamente con cosa hai a che fare.
Se scopri che sul tuo sito viene utilizzato Imperva Incapsula, il passo successivo è analizzarne più nel dettaglio le proprietà e il funzionamento. In questo stesso articolo puoi anche studiare la guida all’integrazione di Imperva Incapsula, per comprendere a fondo come opera sul tuo sito. Questo ti permetterà non solo di capire la protezione attuale, ma anche di pianificarne correttamente la manutenzione.
Durante il test di pagine protette da Imperva Incapsula, è spesso necessario assicurarsi che la protezione funzioni correttamente e che il sistema filtri adeguatamente il traffico sospetto.
Puoi verificare manualmente il funzionamento della protezione sul tuo sito:
Per automatizzare tali controlli, è possibile utilizzare servizi come CapMonster Cloud.
CapMonster accetta i parametri della challenge di Imperva (ad esempio, il cookie _incap_, dati da HTML e script), li elabora e restituisce cookie validi pronti all'uso, che possono essere inseriti nel browser o nel client HTTP.
Lavorare con CapMonster Cloud via API di solito prevede i seguenti passaggi:
Nella richiesta per risolvere Incapsula, è necessario specificare i seguenti parametri:
type - CustomTask;
class - Imperva;
websiteURL - indirizzo della pagina principale in cui si trova Incapsula;
incapsulaScriptUrl (all'interno dei metadati) - "incapsulaScriptUrl": "_Incapsula_Resource?SWJIYLWA=719d34d31c8e3a6e6fffd425f7e032f3" — nome del file js di Incapsula;
incapsulaCookies (all'interno dei metadati) - i tuoi cookie da Incapsula. Possono essere ottenuti sulla pagina utilizzando document.cookie o nell'intestazione della richiesta Set-Cookie: "incap_sess_*=...; visid_incap_*=..." (vedi esempio di richiesta /createTask);
reese84UrlEndpoint (all'interno dei metadati) - nome dell'endpoint a cui viene inviato il fingerprint reese84;
userAgent - User-Agent del browser. Inviare solo un UA attuale del sistema operativo Windows;
Inoltre, per questo compito è necessario l'uso dei tuoi proxy:
proxyType :
proxyAddress - Indirizzo IP del proxy IPv4/IPv6;
proxyPort - porta del proxy;
proxyLogin - login del server proxy;
proxyPassword - password del server 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"
}
}
}
}
}I dati ricevuti da CapMonster Cloud (cookie validi di Incapsula) possono essere inseriti nel contesto del browser o in un client HTTP. Successivamente, il sito riconosce la richiesta come verificata e lascia passare l'utente senza challenge aggiuntive.
Per l'automazione e i test è comodo usare Puppeteer, Selenium o Playwright, poiché permettono di:
In questo modo è possibile verificare la correttezza della protezione e assicurarsi che il sito elabori correttamente le sessioni valide di 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) Impostazioni
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) Apriamo il sito e raccogliamo i cookie 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("Cookie Imperva dalla pagina corrente:", impervaCookiesString);
await browser.close();
// 3) Risolviamo la challenge di 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("Soluzione:", result);
// 4) Inseriamo i cookie ricevuti
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) Impostazione dei cookie e apertura della pagina
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" });
// Output dello stato della pagina finale (opzionale)
// console.log("Stato della pagina finale dopo l'impostazione dei cookie:", resp2?.status());
// …o screenshot finale
// await page2.screenshot({ path: "final_page.png" });
console.log("Pagina caricata con i cookie Imperva applicati.");
}
main().catch(console.error);
1. Crea un account (usa la tua email aziendale per la registrazione) e vai alla Imperva Cloud Security Console.
2. Conferma l'email. Dopo l'accesso, verrai indirizzato al pannello di controllo (puoi saperne di più sul lavoro con la Security Console nella documentazione).
3. Apri la sezione Websites e inserisci il dominio reale del tuo sito.

Imperva automaticamente:
4. Configura i record DNS. Se Imperva mostra il passaggio:
Point dev.mysite.com DNS records to ImpervaFai quanto segue:
Tipo: CNAME
Nome: dev (sottodominio che stai collegando)
Valore: <tuo_host_imperva>.ng.impervadns.net
Esempio:
dev.mysite.com > CNAME > xivaxeo.ng.impervadns.netOpzionale: abilita il supporto per client Non-SNI
Se Imperva mostra la notifica:
If you expect Non-SNI traffic…
Questo riguarda client obsoleti e integrazioni specifiche. Se il tuo sito è standard, questo passaggio può essere saltato.
Se necessario, abilita:
CDN > Delivery > Support Non-SNI clients
5. Attendi la verifica DNS. Imperva attiverà la protezione e l'SSL.
Quando il DNS si connette, Imperva automaticamente:
6. Limita l'accesso diretto al tuo server (consigliato)
Affinché il traffico passi solo attraverso Imperva, sul tuo server dovresti:
Puoi approfondire nella sezione Create Rules.
7. Verifica il funzionamento del sito. Dopo l'attivazione
curl -I https://dev.mysite.comNelle intestazioni dovrebbero apparire righe come:
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
Ciò significa che il traffico passa attraverso Imperva.
Se ti è capitato un sito con un captcha o un altro sistema di protezione già installato e senza accesso al codice, nessun problema! È piuttosto facile capire quale tecnologia viene utilizzata. Per verificare che tutto funzioni correttamente, puoi usare il servizio di riconoscimento CapMonster Cloud in un ambiente di test isolato, così da assicurarti che il meccanismo di elaborazione dei token e la logica di verifica funzionino correttamente.
Nel caso di Imperva Incapsula, è sufficiente individuare il sistema, analizzarne il comportamento e assicurarsi che la protezione funzioni correttamente. Nell’articolo abbiamo mostrato come riconoscere Imperva Incapsula e dove trovare le istruzioni per la sua integrazione o riconfigurazione, in modo da poter mantenere la protezione in modo affidabile e controllarne il funzionamento.