Che cosa cambia dopo l’accesso
Una pagina pubblica può spesso essere recuperata con una normale richiesta HTTP. Una pagina autenticata dipende generalmente da diversi elementi dello stato del browser:- Cookie di sessione che dimostrano che l’utente è già autenticato.
- Token CSRF o intestazioni delle richieste che il sito si aspetta negli invii dei moduli e nelle chiamate API.
- Valori di archiviazione locale o di sessione usati dalle applicazioni a pagina singola.
- Logica di reindirizzamento che rimanda i visitatori non autenticati a
/login. - Regole di scadenza che invalidano le sessioni in seguito al trascorrere del tempo, all’inattività, a cambiamenti di IP o a eventi di sicurezza.
Approccio 1: riutilizzare i Cookie di una sessione reale
L’approccio più comune consiste nell’accedere una volta, salvare i Cookie ottenuti e riutilizzarli nelle esecuzioni di scraping successive. Funziona bene quando il sito mantiene attive le sessioni per ore o giorni e non le vincola troppo strettamente a un dispositivo o indirizzo IP. Nel codice, il modello è il seguente:Approccio 2: accedere con un browser
Alcuni siti richiedono un flusso di accesso in un browser reale. Il web scraper apre la pagina di accesso, compila il modulo, lo invia, attende la pagina dell’account e quindi salva lo stato del browser per le esecuzioni successive.Approccio 3: riprodurre l’API di accesso
Talvolta il modulo di accesso invia una semplice richiesta POST a un endpoint di autenticazione. Se il flusso è semplice e consentito dai termini del sito, è possibile riprodurre direttamente la richiesta con un client HTTP, acquisire i Cookie risultanti e proseguire nel sito. In genere questo metodo è meno stabile dell’accesso tramite browser, perché i flussi di autenticazione spesso includono token CSRF, controlli anti-bot, fingerprinting del dispositivo o campi nascosti che cambiano. L’esame della scheda Network permette di capire se l’accesso è abbastanza semplice da riprodurre o se una sessione browser è la scelta più sicura.MFA, SSO e richieste di sicurezza
L’autenticazione a più fattori modifica la progettazione. Un web scraper non deve tentare di aggirare l’MFA. Occorre invece progettare il flusso tenendone conto:- Usa una fase di accesso con intervento umano, quindi salva la sessione autenticata.
- Preferisci API ufficiali o account di servizio quando il sito li mette a disposizione.
- Prevedi la scadenza delle sessioni e crea un flusso di aggiornamento o nuovo accesso.
- Evita di usare account personali per attività di produzione non presidiate.
Sicurezza della sessione
Se gestito con leggerezza, lo scraping autenticato può bloccare gli account, attivare avvisi o esporre dati sensibili. Adotta queste misure di protezione:- Separa gli account per attività. Non mescolare attività di scraping non correlate nella stessa sessione autenticata.
- Mantieni stabili l’IP e l’identità del browser nella stessa sessione. Cambiare Proxy durante la sessione può sembrare un tentativo di acquisizione dell’account.
- Limita la frequenza delle azioni. Le aree autenticate sono spesso sottoposte a controlli più rigorosi delle pagine pubbliche.
- Rileva le pagine di disconnessione. Un web scraper deve riconoscere quando è stato reindirizzato alla pagina di accesso, anziché interpretarla come dati reali.
- Conserva i segreti in modo sicuro. Credenziali, Cookie e file di stato dell’archiviazione sono tutti sensibili.
- Registra gli accessi in modo intenzionale. Mantieni una cronologia delle esecuzioni sufficiente a diagnosticare gli errori, ma evita di scrivere nei log contenuti privati delle pagine o credenziali.