logo
bars

Imperva Incapsula
e CapMonster Cloud

Risoluzione captcha, installazione sul sito e test.
Hai ereditato un sito con una captcha o un'altra protezione ma senza accesso al codice sorgente? È normale chiedersi quale soluzione sia installata, se sia configurata correttamente e come testarla.

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.

Cos'è Incapsula
Cos'è Incapsula
Imperva Incapsula Web Protection è un sistema di protezione web basato su cloud per siti e applicazioni contro le minacce esterne. Il sistema utilizza reverse proxy sicuri e un Web Application Firewall (WAF), situati in tutto il mondo su server CDN. Il sito viene instradato attraverso server sicuri Imperva, il che consente di verificare ogni richiesta e filtrare le attività dannose.

Come risolvere Incapsula tramite CapMonster Cloud

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:

  • Apri la pagina desiderata e assicurati che Incapsula presenti una verifica.
  • Prova ad accedere senza completare la verifica: il sito dovrebbe restituire un errore 405 o una challenge aggiuntiva.
  • Dopo aver superato la verifica, l'accesso dovrebbe aprirsi senza errori.

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:

Creazione della taskCreazione della task
arrow
Invio della richiesta APIInvio della richiesta API
arrow
Ricezione del risultatoRicezione del risultato
arrow
Inserimento dei cookie Incapsula nella paginaInserimento dei cookie Incapsula nella pagina
arrow
Riconoscimento di Imperva Incapsula utilizzando librerie pronte
Il servizio CapMonster Cloud fornisce librerie pronte per lavorare comodamente nei linguaggi Python e JavaScript (Node.js).
Python
JavaScript
Soluzione, ottenimento dei parametri e impostazione dei cookie
Esempio in Node.js per il ciclo completo di riconoscimento captcha sulla tua pagina web. Approcci possibili: utilizzare richieste HTTP per ottenere l'HTML e i parametri del sistema di protezione, inviare la risposta ed elaborare il risultato. Oppure tramite strumenti di automazione (ad esempio, Playwright): aprire la pagina, attendere la verifica, inviare i parametri tramite il client CapMonster Cloud, ricevere il risultato, inserire i cookie nel browser (per i test è possibile utilizzare sia dati corretti che errati) e vedere il risultato.
// 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);

Come collegare Imperva Incapsula al proprio sito
Per orientarti con sicurezza nel funzionamento del captcha sul tuo sito, comprendere la logica della sua verifica, ricollegare o riconfigurare la protezione, ti consigliamo di studiare questa sezione. In essa è descritto il processo di collegamento della protezione: questo ti aiuterà a comprendere rapidamente tutte le sfumature.

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.

HowTo Connect image 1

Imperva automaticamente:

  • rileverà il tuo provider DNS,
  • verificherà l'SSL,
  • inizierà la scansione dei record DNS.

4. Configura i record DNS. Se Imperva mostra il passaggio:

Point dev.mysite.com DNS records to Imperva

Fai quanto segue:

  • Vai al pannello DNS del tuo registrar o hosting.
  • Crea o aggiorna il record:


Tipo: CNAME
Nome: dev (sottodominio che stai collegando)
Valore: <tuo_host_imperva>.ng.impervadns.net

Esempio:

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

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

  • distribuirà la CDN,
  • attiverà il WAF (Web Application Firewall),
  • creerà un certificato HTTPS,
  • attiverà la protezione contro DDoS e bot.

6. Limita l'accesso diretto al tuo server (consigliato)

Affinché il traffico passi solo attraverso Imperva, sul tuo server dovresti:

  • consentire l'accesso solo dagli indirizzi IP di Imperva,
  • vietare le connessioni dirette (tranne i tuoi IP),

Puoi approfondire nella sezione Create Rules.

7. Verifica il funzionamento del sito. Dopo l'attivazione

  • apri il tuo sottodominio/dominio nel browser,
  • o usa curl:

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

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

Background
Possibili errori e debug
Bug Icon
Dominio o regola non validi — La Challenge non viene mostrata.
Verifica che la Security Rule sia associata al dominio e al percorso corretti e che non vi siano conflitti con IncapRules o ACL.
Bug Icon
Timeout durante il caricamento della pagina o la verifica.
Il browser potrebbe non attendere la risposta di Imperva. Aumenta i timeout nei test e assicurati che il backend risponda abbastanza velocemente.
Bug Icon
Cookie Imperva scaduti.
Valori obsoleti di visid_incap, incap_ses, nlbi causano una Challenge ripetuta o un blocco.
Bug Icon
Regole eccessivamente sensibili.
Firme rigide possono bloccare visitatori reali del tuo sito.
Bug Icon
Configurazione errata.
Impostazioni o regole errate che non tengono conto delle specificità del sito causano blocchi errati e falsi positivi.
Verifiche della resilienza della protezione
Dopo l'integrazione assicurati che il sistema protegga davvero il sito dalle azioni automatizzate.
Suggerimenti di sicurezza e ottimizzazione
Configura il WAF e le Security Policies in base al livello di rischio. Utilizza Managed Rules, Bot Protection e regole personalizzate per un controllo più preciso.
Registra gli eventi di sicurezza e le attivazioni del WAF per identificare falsi positivi e analizzare le cause dei blocchi.
Per trasparenza, aggiungi link alla <b>Privacy Policy</b> e ai <b>Termini di utilizzo</b>. Questo è importante per la trasparenza e la conformità ai requisiti di sicurezza.
Conclusione

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.

Conclusion
Link utili
DocIconDocumentazione Imperva IncapsulaDocIconAccesso alla Cloud Security ConsoleDocIconDocumentazione CapMonster Cloud (lavoro con Imperva Incapsula)