Sotto attacco? EN Prova gratis
Blog · DDoS e sicurezza

Bloccare bot e scraper senza bloccare Google: la guida pratica

Una buona parte del traffico di un sito è fatta da bot. Alcuni servono (Google, Bing), altri copiano contenuti, provano password o consumano risorse. Come distinguerli e fermare solo quelli cattivi.

Apri le statistiche del server di un sito qualsiasi e scoprirai che una parte importante delle richieste non arriva da persone. Ci sono i motori di ricerca, i servizi di monitoraggio, le anteprime dei social, i lettori di feed. E poi ci sono gli altri: bot che copiano articoli e prezzi, che cercano pagine vulnerabili, che provano password. Il problema non è bloccare i bot: è bloccare quelli giusti.

Il tuo sito è sotto attacco in questo momento? Non aspettare di finire l'articolo: ci sono cinque passi da fare subito e un modulo che avvisa il nostro staff.Cosa fare adesso

Bot buoni e bot cattivi

Bot utili Bot da fermare
Motori di ricerca (Googlebot, Bingbot) Scraper che copiano contenuti e prezzi
Anteprime di WhatsApp, Facebook, LinkedIn Scanner che cercano pagine vulnerabili (/.env, /phpmyadmin, vecchi plugin)
Monitoraggio della disponibilità Brute force su login e pannelli
Lettori di feed RSS Bot che aggirano la cache con parametri casuali
Servizi che usi tu (pagamenti, spedizioni, backup) Traffico da DDoS applicativo

Il primo errore: fidarsi dello user agent

Ogni richiesta dichiara chi è con lo user agent. Il problema è che lo decide chi fa la richiesta: scrivere "Googlebot" nel proprio user agent è banale, ed è esattamente ciò che fanno molti scraper, perché sanno che quasi nessun sito blocca Google.

Quindi:

Come riconoscere il vero Googlebot

Google e Bing offrono due modi per verificare che una richiesta arrivi davvero da loro.

1. La verifica DNS inversa. Si prende l'IP, si chiede il suo nome e si controlla che finisca con googlebot.com o google.com (per Bing, search.msn.com); poi si chiede l'IP di quel nome e si controlla che coincida con quello di partenza.

host 66.249.66.1
host crawl-66-249-66-1.googlebot.com

2. Gli elenchi ufficiali di indirizzi. Google e Bing pubblicano gli intervalli di IP dei loro crawler in file aggiornati regolarmente. È il metodo più comodo da automatizzare.

Lo Shield di 1PrimeCDN scarica ogni giorno gli elenchi ufficiali di Google e Bing: gli indirizzi verificati non ricevono mai verifiche né blocchi, nemmeno con la modalità «sotto attacco» accesa. Chi si traveste da Google senza esserlo viene trattato come chiunque altro.

robots.txt non è una protezione

Il file robots.txt dice ai bot quali pagine non visitare. I motori di ricerca seri lo rispettano, e lo rispettano anche molti crawler dei servizi di intelligenza artificiale. Ma è una richiesta, non un blocco: i bot che vuoi fermare davvero lo ignorano, e a volte lo leggono proprio per scoprire le pagine che preferiresti nascondere.

Usa robots.txt per gestire l'indicizzazione, non per la sicurezza.

Come fermare i bot cattivi senza colpire le persone

Guarda il comportamento, non l'identità

Un bot si riconosce da cosa fa più che da come si presenta:

Lo Shield di 1PrimeCDN assegna a ogni IP un punteggio su questi comportamenti, finestra dopo finestra. Sopra una soglia l'IP passa da una verifica; oltre, viene bloccato per un tempo limitato che raddoppia se insiste. Gli scanner, che vanno piano per non farsi notare, vengono contati su un periodo più lungo.

Usa una verifica invisibile, non un CAPTCHA

I CAPTCHA con le immagini fanno perdere clienti. La verifica di 1PrimeCDN chiede al browser di risolvere un piccolo calcolo: una persona vede una schermata per circa un secondo, poi naviga normalmente per ore. Un bot che fa migliaia di richieste dovrebbe ripetere il calcolo per ognuna, e smette di essere conveniente.

Limita le richieste per IP

Un limite di richieste al secondo per indirizzo non disturba nessuno che navighi normalmente e taglia le gambe agli scraper più aggressivi. Sulle pagine sensibili (accesso, ricerca, carrello) il limite può essere più stretto.

Blocca per paese solo se ha senso

Se il tuo pubblico è in Italia e ricevi migliaia di richieste da paesi lontani, un blocco per paese o una verifica per quei paesi riduce il rumore in un attimo. Non farlo alla cieca, però: potresti bloccare clienti in viaggio o servizi che usi, come i server del tuo fornitore di pagamenti.

Non dimenticare i bot che ti servono

Prima di stringere le regole, fai un elenco dei servizi automatici che devono raggiungere il sito: il monitoraggio, il gateway di pagamento che conferma gli ordini, il servizio di spedizioni, i backup, eventuali app. Aggiungili agli indirizzi sempre ammessi.

Su 1PrimeCDN il server d'origine del tuo sito è ammesso in automatico sulla sua zona: se il sito legge le proprie pagine attraverso la CDN, lo Shield non lo scambia per un bot.

In sintesi

  1. non fidarti dello user agent: verifica i crawler con gli elenchi ufficiali o la DNS inversa;
  2. giudica i bot da come si comportano;
  3. usa verifiche invisibili al posto dei CAPTCHA;
  4. limita le richieste per IP, di più sulle pagine sensibili;
  5. tieni un elenco dei servizi automatici che devono sempre passare.

Se i bot stanno già mettendo in difficoltà il sito, leggi come capire se il sito è sotto attacco o scrivici dalla pagina d'emergenza.

Vuoi un sito che regge anche sotto attacco?

1PrimeCDN mette il tuo sito dietro 8 nodi europei con cache, HTTPS e lo Shield contro bot e attacchi, a canone fisso dal 9,90 € al mese.

Parliamone