Deprecated: Assigning the return value of new by reference is deprecated in /membri2/asbruff/flatpress/comments.php on line 213
TheJoe » Usare il file ".htaccess" per bloccare gli accessi
2010
Feb
24

Usare il file “.htaccess” per bloccare gli accessi


Deprecated: Non-static method StringParser_Node::destroyNode() should not be called statically, assuming $this from incompatible context in /membri2/asbruff/flatpress/fp-plugins/bbcode/inc/stringparser.class.php on line 358

googlebot1.jpg A chiunque sia capitato di monitorare gli accessi di un sito sarà capitato di imbattersi in accessi molto simili fra loro, spesso si tratta di crawler (lo stesso Google utilizza un sofisticato tipo di crawler chiamato GoogleBot). Parafrasando Wikipedia:

Un crawler (detto anche spider o robot), è un software che analizza i contenuti di una rete (o di un database) in un modo metodico e automatizzato, in genere per conto di un motore di ricerca.

Solitamente i crawler sono innocui, creano un limitatissimo traffico all’interno del sito (se fatti bene) per offrire il servizio di indicizzazione che tutti ben conosciamo ed apprezziamo.

Esistono però dei crawler che, con gli stessi meccanismi dei crawler di indicizzazione, scansionano il web alla ricerca di falle nel codice delle pagine. Come sappiamo non sempre i webmaster sono attenti nella programmazione, e a volte veniamo a conoscenza di alcune falle nella sicurezza del sito (o portale). Questi crawler dannosi esplorano in lungo e in largo il web, indicizzando le pagine per se stessi al fine di poter “bucare” il sito, ed avere accesso al server o peggio a dati sensibili.

Inoltre, oltre a non farci un buon servizio di indicizzazione, aumentano l’uso della banda, costringendo il navigatore a visitare il sito più lentamente. Insomma… oltre al danno la beffa.

È però possibile tramite un semplicissimo file di testo bloccare l’accesso a determinati IP o “user agent” una volta individuati. Sto parlando del file “.htaccess”.

Il file “.htaccess” è un file di configurazione utile al server, uno strumento molto semplice, ma altrettanto potente, e non può essere usato con leggerezza. Un errore nella configurazione del file potrebbe inibire al webmaster l’accesso alle proprie pagine, per cui andiamoci cauti.

Il metodo più sicuro per sapere se lo “user agent” che ha fatto di recente visita al sito è un crawler dannoso è una ricerca su Google. Cerchiamo separatamente lo “user agent” e l’indirizzo IP dal quale ci è arrivata la richiesta.

Blocco del bot tramite “.htaccess”

Questo esempio, e tutti i successivi, possono essere aggiunti in fondo al file “.htaccess”, sempre che sia stato creato. Se non è già esistente è possibile crearlo: un semplice file di testo che chiameremo “.htaccess” andrà messo nella “root directory” del server.

#sbarazziamoci del bot
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^BadBot
RewriteRule ^(.*)$ http://go.away/

Che fa questa parte di codice? Semplice. Le poche righe qui sopra dicono al server di controllare ogni accesso il cui “user agent” inizi con “BadBot”. Quando ne trova uno che coincide lo reindirizza ad un indirizzo non esistente chiamato “http://go.away/”.

Ora vediamo come bloccarne più di uno:

#sbarazziamoci dei bot
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^BadBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^EvilScaper [OR]
RewriteCond %{HTTP_USER_AGENT} ^FakeUser
RewriteRule ^(.*)$ http://go.away/

Il codice di qui sopra fa esattamente le stesse cose che faceva il primo, in questo caso blocca tutti gli “user agent” che iniziano con “BadBot”, “EvilScraper”, “FakeUser”. Notare che quando c’è più di un bot da bloccare è necessario mettere “[OR]” alla fine della riga di tutte le regole, tranne che all’ultima.

Blocco dei “ladri” di banda

Chi naviga di solito non lo sa, ma spesso accade che per non appesantire il proprio server (o per semplice ignoranza) alcuni webmaster includano delle immagini residenti altrove nelle proprie pagine. Questo alleggerisce il carico del server che non ha l’onere di ospitare l’immagine, ma appesantisce il traffico sul server in cui l’immagine risiede, senza contare che il secondo server non ha alcuna pubblicità dal lavoro svolto.

Visto che non possiamo permetterci di cambiare a rotazione le immagini del nostro sito, anche in questo caso “.htaccess” ci viene in aiuto.

RewriteEngine on
RewriteCond %{HTTP_REFERER} ^http://.*somebadforum\.com [NC]
RewriteRule .* - [F]

In questo modo “somebadforum.com” sarà reindirizzato ad un codice403 Forbidden” per ogni immagine inclusa. Il risultato finale sarà il classico simbolo di immagine mancante (broken image), e la banda del nostro server sarà salva.

Per bloccare più di un sito questo è il codice:

RewriteEngine on
RewriteCond %{HTTP_REFERER} ^http://.*somebadforum\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://.*example1\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://.*example2\.com [NC]
RewriteRule .* - [F]

Come sopra, notare sul finale di ogni riga “OR”, ad eccezione dell’ultima.

Bannare gli IP

Può anche capitare che i bot si facciano furbi, e a rotazione cambino il loro “user agent”, in modo da avere continuo accesso alle pagine del sito. Quando capita questo fenomeno uno dei modi per bloccare l’accesso al bot “fantasioso” è bloccare l’IP (bloccarlo solo se c’è un continuo accesso dallo stesso IP). Sempre nel nostro fidato “.htaccess” aggiungiamo le seguenti righe:

order allow,deny
deny from 192.168.44.201
deny from 1.2.3.4
deny from 5.6.7.8
allow from all

In questo esempio blocchiamo tre indirizzi IP, con l’ultima riga garantiamo l’accesso a tutti gli altri. Ma è anche possibile bloccare l’accesso alla radice dell’indirizzo (es. 192.168.*):

order allow,deny
deny from 192.168.
deny from 100.29.
deny from 500.699.
allow from all

Con queste regole tutti gli indirizzi IP che iniziano con “192.168.” (e seguenti) verranno bloccati.

Suggerisco sempre di creare un backup di “.htaccess”, non sempre le cose vanno come vogliamo, e non sarebbe utile a nessuno non avere più l’accesso al proprio server. Gli hoster più diffusi offrono il supporto al file “.htaccess”, nel caso in cui il tuo hoster non offrisse tale supporto credo sia il caso di cambiare hoster.

  1. Luca Canducci

    Saturday, March 6, 2010 - 01:09:25


    Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /membri2/asbruff/flatpress/fp-includes/core/core.wp-formatting.php on line 102

    Interessante serie di articoli. Ricorda di specificare che tutto questo vale se il web server è Apache (anche se la maggior parte dei servizi di hosting fornisce proprio Apache) oltre al fatto che ovviamente sia abilitata (o abilitabile) la gestione dei file “.htaccess”.
    Altro dettaglio interessante, c’è la possibilità di dare un nome diverso da “.htaccess” ai file per le configurazioni specifiche, anche se solitamente nei servizi di hosting non è possibile una configurazione di grana così fine.

    :D

  2. TheJoe

    Saturday, March 6, 2010 - 08:01:39


    Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /membri2/asbruff/flatpress/fp-includes/core/core.wp-formatting.php on line 102

    Ciao Lu,
    grazie per il feedback, in effetti non ho specificato il tipo di server.. davo per scontato che venisse usato apache (il più usato). Solitamente poi chi fornisce il servizio di hosting su server apache fornisce anche il supporto ad “.htaccess” (parlo dei maggiori hoster italiani: aruba, register e compagnia).

    Mi fa piacere che mi commenti gli articoli interessanti, ma all’una di notte non hai di meglio da fare che leggere i miei articoli su htaccess?? ahah!!

  3. Poker

    Wednesday, March 17, 2010 - 00:26:27


    Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /membri2/asbruff/flatpress/fp-includes/core/core.wp-formatting.php on line 102

    We can also use dns instead of ip for the allow in the htaccess.

  4. TheJoe

    Wednesday, March 17, 2010 - 13:25:36


    Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /membri2/asbruff/flatpress/fp-includes/core/core.wp-formatting.php on line 102

    sure, and we can instead deny the access always using the dns.. htaccess is a big resource..

    and of course thanks for the comment!

  5. Tiffany Outlet

    Wednesday, July 11, 2012 - 09:07:11


    Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /membri2/asbruff/flatpress/fp-includes/core/core.wp-formatting.php on line 102

    All things are difficult before they are easy.Best Wishes!

  6. Tiffany Outlet

    Wednesday, July 11, 2012 - 09:07:32


    Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /membri2/asbruff/flatpress/fp-includes/core/core.wp-formatting.php on line 102

    All things are difficult before they are easy.Best Wishes!


Strict Standards: Only variables should be passed by reference in /membri2/asbruff/flatpress/fp-includes/core/core.fpdb.class.php on line 268

Deprecated: Non-static method StringParser_Node::destroyNode() should not be called statically, assuming $this from incompatible context in /membri2/asbruff/flatpress/fp-plugins/bbcode/inc/stringparser.class.php on line 358

Calendario


Strict Standards: Only variables should be passed by reference in /membri2/asbruff/flatpress/fp-includes/core/core.fpdb.class.php on line 256

Tags

  Gnome     Gmail     Stampa     Open Source     Flatpress     GoogleBuzz     Linutop     Tips     HowTo     Shell     SplitToning     Netbook     Linux     Alien     rSync     Mac OS X     Meebo     Pure|dyne     VHosting     Samba     Grafica     hoster     Linux4one     GoogleVideo     htaccess     Tutorial     Siti     Fedora     Javascript     Prey     Sourceforge     Ajax     Global menu     Xfce4     Software         OpenVZ     Audacity     Aruba     Youtube     ChromeOS     Blog     Symbian     SongBird     Web     Firefox     StyleShout.com     MPD     GnomeMusicPlayerClient     Jack     Hydrogen     Dyne|bolic     Social Network     CentOS     TrueCrypt     Tilda     Distribuzioni     WebArchive     Html     Css     Nokia     Gimp     mac4lin     Tech     SivamDesign.com     Ubuntu     Mencoder     Pidgin     Audio     Sicurezza     Brushes     Fotoxx     Ardour     AspirOne     Google     Video     Php  

Admin area