«

»

Ott 04 2011

Stampa Articolo

Catturare gli spiders invasivi

Sovente nell'analizzare il traffico dei nostri siti rileviamo un consumo elevato di banda utilizzata dai vari Spiders che periodicamente scansionano le nostre pagine web. Alcuni di essi appartengono a motori di ricerca - come ad esempio Google,  Bing , Yahoo, tanto per citarne i maggiori - e avere le proprie pagine WEB indicizzate nei principali motori di ricerca significa una migliore visibilità del sito. Tuttavia può capitare di imbatterci in altri web crawler  che seguendo i link ipertestuali leggono tutte (o quasi tutte) le pagine del nostro sito causando quel consumo di banda anomalo che può anche arrivare al 90% del traffico globale del nostro dominio.

Ma non solo i motori di ricerca, grandi o piccoli che siano, scansionano la rete, sono molto attivi anche gli Spambot che si occupano di trovare indirizzi email da utilizzare per l'invio di messaggi pubblicitari, così come i bot alla ricerca di form dove sia possibile in automatico postare link sottoforma di commenti (solitamente link a siti porno o di gioco d'azzado). E un sito pieno di link a domini non affidabili viene penalizzato da Google oltre che a scadere in qualità, due elementi da non trascurare.

Altro problema che causano gli spider se sono molto invasivi è lo stress al server che ospita il dominio con conseguente rallentamento della navigabilità del sito da parte degli utenti "umani": unito al problema di consuno di banda (anche quando è "assicurato" traffico illimitato il problema esiste ugualmente perchè si satura l'ampiezza di banda) rende quasi d'obbligo pensare a soluzioni per inibire l'accesso a questi crawler. Una soluzione può essere quella di utilizzare il file .htaccess con all'interno il comando deny from xxx.xxx.xxx.xxx (dove xxx.xxx.xxx.xxx è l'IP da bloccare)

Attenzione: il file .htaccess è presente solo su Server LINUX, quindi se il vostro sito è su server WINDOWS questo articolo non fa per voi e pertanto continuerete a ricevere la visita di tutti questi Spider (Suggerimento: migrate a LINUX!). Sarà anche necessario avere accesso al file .htaccess tramite FTP o da un Pannello di Amministrazione Dominio (esempio PLESK, CPanell, Webmin, ecc.)

Naturalmente non è pensabile riportare manualmente all'interno del file .htaccess tutti gli IP che vogliamo escludere, quindi è necessario utilizzare uno script e alcuni accorgimenti per rendere tutta la procedura automatica.

Intanto dovete aver preparato il file robots.txt - file che indica ai motori di ricerca cosa devono indicizzare e cosa devono escludere, per l'uso più dettagliato del file robotstxt rimando a un prossimo articolo - con all'interno il comando:

 

Disallow: /bad-bots.php

 

Questo comando indica ai motori di ricerca "seri", quindi quelli che ci interessano, di non andare a leggere il file bad-bots.php che posizioneremo nella root del sito e nel quale ci sarà lo script per "catturare" il BOT malevolo, che non essendo predisposto per seguire le indicazioni del file robots.txt cadrà nella nostra trappola.

Di seguito il codice che dovrà essere incluso nel file bad-bots.php:
(da seven-3-five.blogspot.com)

 

 

Ricordatevi di inserire la vostra email nella riga "$email = 'metti-la@tua-email'; //edit accordingly" in modo che ogni volta che verrà catturato uno Spider riceverete l'avviso.

IMPORTANTE: assicuratevi che il vostro file .htaccess sia presente nella root del vostro dominio e che abbia i permessi di scrittura; inoltre - MOLTO IMPORTANTE - assicuratevi che, nel caso all'interno del file .htaccess siano presenti altre righe di comando, ci sia almeno un "a capo" dopo l'ultima riga altrimenti il comando deny from xxx.xxx.xxx.xxx sarà scritto sulla stessa ultima riga con il risultato di bloccare il vostro sito.

L'ultima operazione da compiere consiste nell'inserire un link in fondo all'Home Page del sito (è sufficiente la HOME, è questa il riferimento iniziale per tutti gli spider) che colleghi il file bad-bots.php . Il codice html del link dovrà essere scritto in modo che l'utente visitatore non lo possa vedere e che Google non lo consideri un elemento penalizzante, quindi dovrà contenere l'attributo rel="nofollow" e non dovrà avere Anchor Text:

 

Consiglio di crearsi una copia di backup del proprio file .htaccess e al primo avviso ricevuto per email di andare a controllare al più presto il funzionamento del sito.

Personalmente utilizzo questo script su diversi siti ecommerce affiliati ad Amazon, che per via del limite di query orarie permesse sulle API di Amazon è necessario inibire tutti questi Spider divoratori di risorse.

Come sempre, sono graditi commenti e integrazioni a questo articolo, così come sono gradite le segnalazioni su facebook e il click sul bottone Google +1

Grazie 🙂

4 comments

Vai al modulo dei commenti

  1. Antonio

    Ciao e grazie per la guida. Da circa 2 mesi e mezzo ho a che fare con una specie di attacco Ddos sul mio sito, però prolungato!!! Cioè tutti i giorni costantemente ricevo alcune migliaia di visite dagli USA, dal sud America, dal nord europa ecc.

    Ovviamente questo prosciuga le risorse del mio server e non si riesce a fermare!!

    Secondo te questo script potrebbe funzionare per il mio caso? Dove vanno posizionati i file nelle cartelle wordpress?

    Visto che queste visite sono dirette solo in home page si potrebbe impedire l’accesso a tutti quelli che arrivano al sito digitando l’indirizzo e lasciare solo quelli che arrivano dai motori di ricerca o dai reffer?

    PS Sono disposto anche ad una consulenza a pagamento per risolvere la cosa.

    1. Admin Cyberspazio
      Admin Cyberspazio

      Ciao,

      non so se nel tuo caso può essere utile questo sistema, se esegue una scansione generale del sito forse sì ma l’unica cosa da fare è provare…

      I file vanno messi nella root principale, cioè in nessuna sottocartella.

      Se hai accesso ai log del server potresti anche ricavare gli IP e bloccarli insernedoli manualmente uno a uno (o a gruppi) nel file .htaccess

  2. Nino

    Ciao, ti ringrazio, sto provando a utilizzare il sistema auto-testandolo e dopo un po’ di lavoro credo che funzioni.
    Vorrei chiederti: alle righe 21-23 ($good = Array(‘google’, ‘yahoo’, ‘msn’,), non bisogna aggiungere altro, ossia, i bot “buoni” sono solo questi?

    Grazie,

    Antonino

    1. Admin Cyberspazio
      Admin Cyberspazio

      Ciao,

      eventualmente potresti aggiungere altri bot, ma in fondo sono questi quelli che interessano di più.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Puoi usare i seguenti tag ed attributi HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">


*

Login

Register | Lost your password?