Indice dei contenuti
TogglePartiamo dal presupposto che i bot sono sempre e comunque un gran bel fastidio, ad ogni modo dobbiamo distinguere i bot che danno fastidio a fin di bene, se così si può dire, e quelli che agiscono per fini meno nobili.
Tra i primi ci sono sicuramente i motori di ricerca più conosciuti, come Google, Bing, Yandex e compagnia bella, per i secondi si entra in un mondo davvero contorto, dai più semplici spambot al web più oscuro.
L’effetto dei bot sui siti web a volte può essere molto dannoso, quando un sito viene preso di mira più del solito le risorse (RAM e CPU) possono schizzare alle stelle, fino a causare il blocco del servizio.
Ne sanno qualcosa gli utenti Siteground di hosting condivisi: tutti prima o poi hanno dovuto combattere contro l’utilizzo eccessivo di risorse, e lo spauracchio di vedersi il servizio sospeso per eccesso di utilizzo delle risorse. Non è detto che dipenda solo dai troppi bot, ma è sicuramente una delle concause più frequenti.
Vediamo come iniziare ad affrontare questo problema.
La cosa migliore sarebbe iniziare sempre da un’analisi dei log degli accessi, giusto per sapere contro chi si sta lottando, ma non sono di facile interpretazione.
Se invece dobbiamo procedere per tentativi, possiamo creare dei filtri nei file robots.txt e .htaccess, oppure provare con plugin appositi.
Bot e uso del file robots.txt
Il file robots.txt nasce proprio per regolamentare l’accesso dei bot dei motori di ricerca ad un sito web, e le istruzioni contenute dovrebbero indicare quali contenuti sono indicizzabili dai motori di ricerca, e soprattutto da quali motori di ricerca.
Il problema è che l’osservanza di queste regole è tutta a discrezione dei bot, e se Google e altri motori di ricerca sono più o meno ligi al dovere, i bot malevoli di sicuro se ne fregano bellamente.
Modificare il file .htaccess per bloccare i bot dannosi.
Rispetto al file robots.txt, che contiene solo indicazioni che i bot dovrebbero rispettare, con il file .htaccess si possono stabilire delle vere e prorie regole di ingaggio: chi entra e chi no.
In pratica con il file .htaccess si può creare un firewall software.
Attenzione, il file .htaccess vale solo per servizi web su server Apache
Diversi servizi di hosting stanno preferendo NGINX come server web, più performante, al posto di Apache.
NGINX non prevede l’uso del file .htaccess, le stesse cose si possono effettuare utilizzando gli strumenti messi a disposizione da NGINX.
Altri, per non complicare troppo la vita ai clienti, optano per un mix dei due sistemi.
Dipende da dove caschi.
Siteground, ad esempio, consigliava di aggiungere queste poche righe di codice al file .htaccess:
RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^$ [OR] RewriteCond %{HTTP_USER_AGENT} (bot|crawl|robot) RewriteCond %{HTTP_USER_AGENT} !(Bing|Google|msn|MSR|Twitter|Yandex) [NC] RewriteRule ^/?.*$ "http\:\/\/127\.0\.0\.1" [R,L]
Queste istruzioni, in pratica, dovrebbero bloccare tutti i bot eccetto Bing, Google, msn, MSR, Twitter e Yandex, e la lista è modificabile nella quarta riga dello script.
Un vero e proprio firewall software, molto più complesso, è 7G Firewall di Jeff Starr, ultimo nato di una serie fortunata di firewall software.
Anche questo va inserito nel file .htaccess, e dato che viene aggiornato di frequente rimando direttamente al sito originale, dove si possono valutare anche le altre versioni.
Plugin utili per bloccare bot dannosi.
I plugin per la sicurezza come WordFence, tra le varie opzioni, dovrebbero servire anche per questo scopo, anche se le versioni gratuite potrebbero essere limitate.
Per plugin specifici contro bot e crawler, si può dare un’occhiata a Booter o, in alternativa, il più aggressivo Stop Bad Bot, specie nella versione premium.
Una CDN aiuta contro i bot.
L’utilizzo di un servizio CDN, come Cloudflare e simili, può limitare l’effetto dei bot malevoli sul server, dato che le richieste vengono intercettate dal servizio CDN e questi in genere sono attrezzati per limitare questo fenomeno.
Bot buoni, da tenere al guinzaglio.
Servizi come Google e Bing possono a volte creare problemi, Google alle volte è peggio di una calata di barbari, e nemmeno Bing scherza. Non sono gli unici, ma prendiamo questi due come esempio.
Google permette di abbassare temporaneamente la frequenza dei suoi bot tramite la (vecchia) Search Console, basta agire sul cursore e metterlo al minimo, la modifica sarà salvata per alcuni mesi poi ritornerà alla normalità.
Bing invece lo si può limitare tramite robots.txt con questa istruzione:
User-agent: msnbot Crawl-delay: 5
Il valore crawl-delay si puà impostare da 1 a 10: ovvero da lento a estremamente lento, 5 è una via di mezzo solitamente accettabile.
Possibili controindicazioni
L’adozione di un sistema più o meno aggressivo, contro i bot non autorizzati o malevoli, può causare qualche malfunzionamento come i collegamenti con servizi esterni che possono essere scambiati per falsi positivi, problema che si pone maggiormente negli e-commerce e nei sistemi collegati a gestionali esterni di vario tipo.
È bene fare sempre una verifica, anche per le variazioni più piccole.