Bloccare l’accesso di Spammer e Troll modificando il file htaccess

htaccess-spam

Il sito web è invaso da Spammer e Troll che sfruttano la banda del servizio hosting e inondano la sezione dei commenti con messaggi indesiderati ?

Tra i metodi più utilizzati per bloccare certi commenti è affidarsi ad un servizio come Akismet o installare l’ottimo plugin su WordPressHiddy Antispam” per limitare l’accesso ai vari bot.

Un’alternativa, senza dubbio molto efficace in quanto risolve il problema “a monte“, è negare l’accesso ad uno o più indirizzi IP modificando direttamente il file .htaccess presente comunemente nei server Apache.
Si tratta di un file di configurazione dal quale è possibile effettuare molteplici operazioni come il reindirizzamento ed una miriade di altre funzioni.

In questo articolo ci limiteremo a descrivere come bloccare l’accesso ad uno o più determinati indirizzi IP verso il nostro sito, facendo trovare una “porta chiusa” al visitatore indesiderato che non potrà quindi far alcuna operazione dal nostro amato sito web.

E’ necessario innanzitutto trovare l’indirizzo IP incriminato che si dovrà inserire in una sorta di “blacklist” dentro il file .htaccess.

WordPress per questo fa un gran lavoro, basta recarsi dal lato admin nella sezione “commenti” per visualizzare sotto il nome di ogni persona, troll o spammer che siano, l’indirizzo IP associato.

E’ molto importante essere certi che l’indirizzo IP dello spammer sia di tipo fisso e/o che faccia parte di un predeterminato range. Se si tratta infatti di un indirizzo IP dinamico, che cambia ad ogni connessione, è preferibile non inserire questo IP nel file .htaccess per evitar di bloccare l’accesso futuro a visitatori realmente interessati alle pagine del nostro sito web.
Stesso discorso vale anche se l’accesso proviene da un server Proxy, dove l’IP può essere condiviso da spammer ed utenti tradizionali. In questo modo verrebbe limitato l’accesso anche a persone normalmente autorizzate.

In definitiva, prima di inserire un determinato indirizzo IP nel file .htaccess per bloccarne l’accesso, bisogna essere certi al 100% che questo IP appartenga unicamente a spammer e troll vari, viceversa è assolutamente consigliabile utilizzare i normali servizi e plugin anti-spam, senza andar a toccare il file .htaccess.

Individuare il file .htaccess

Come detto in precedenza, il file .htaccess è dedicato alla configurazione del server, pertanto può essere ripetuto in più cartelle per impostare prederminate operazioni all’interno delle varie directory.

Il file che a noi interessa è quello posizionato nella root principale, in questo modo andremo ad impostare istruzioni che vincoleranno tutto il contenuto del webserver.

WordPress, in fase di installazione, crea automaticamente il file .htaccess all’interno della root principale.

Questo file è normalmente nascosto dai vari client FTP, per visualizzarlo si dovrà pertanto impostare il client FTP preferito affinchè visualizzi anche i file nascosti.
Con FileZilla, ad esempio, basterà abilitare la voce “visualizza file nascosti” direttamente sotto il menù “Server“.

Possiamo anche utilizzare il client FTP online, normalmente fornito dal provider / mantainer del servizio hosting per operare direttamente online, lato server, con il .htaccess.

Una volta individuato il file .htaccess nella root, è buona norma effettuare immediatamente una copia di backup in modo tale da poter effettuare un ripristino indolore se qualcosa non dovesse funzionare correttamente.

Modifica del file

Il file .htaccess non è altro che un file di tipo testuale che potrà essere modificato con un comune text editor come Notepad (il Blocco Note su Windows…). Bisogna ad ogni modo accertarsi di non salvarlo con estensione .TXT per ottenere un file del tipo “.htaccess.txt”. In questo modo, il server non riuscirà ad interpretarlo in quanto lo vedrà come un classico file .TXT.
Se la modifica viene effettuata direttamente con un client FTP online, come quello incluso nel proprio servizio hosting, normalmente la modifica potrà essere effettuata in linea con l’editor online, senza dover necessariamente scaricare il file nel computer.

Se non sono state effettuate in precedenza modifiche ci ritroveremo un contenuto di questo genere, creato da WordPress in fase di installazione:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Come si può notare, WordPress applica già delle regole di riscrittura indirizzi utilizzando direttamente il .htaccess.
Le parole seguite dopo il simbolo del cancelletto (#) non sono altro che i commenti lasciati dallo script di WordPress, si potranno quindi aggiungere ulteriori commenti nella stessa riga del cancelletto.

Cosa aggiungere

Per bloccare un determinato indirizzo IP, è sufficiente aggiungere le relative istruzioni dopo la sezione “#END WordPress“, avendo cura di lasciare anche un spazio bianco per una migliore interpretazione successiva.

Di seguito ecco cosa aggiungere nel proprio .htaccess. Le parentesi con il relativo interno dovranno essere sostituiti con uno o più indirizzi IP reali e/o nomi di host:

# INZIO blocca IP di spammer e troll
order allow,deny
deny from {INDIRIZZO IP}
deny from {SECONDO INDIRIZZO IP, UNO PER LINEA...}
deny from {NOMI HOST COME nomehostspammer.com}
allow from all
# FINE blocca IP di spammer e troll

Esempi pratici

Presupponiamo di voler bloccare l’accesso dell’indirizzo IP 188.170.120.110, si dovrà quindi inserire:

# INZIO blocca IP di spammer e troll
order allow,deny
deny from 188.170.120.110
allow from all
# FINE blocca IP di spammer e troll

Se vogliamo invece bloccare l’accesso anche ad un altro indirizzo IP, in aggiunta al precedente, riportante il numero 99.122.100.10, si dovrà scrivere:

# INZIO blocca IP di spammer e troll
order allow,deny
deny from 188.170.120.110
deny from 99.122.100.10
allow from all
# FINE blocca IP di spammer e troll

Se vogliamo bloccare l’accesso anche ad un determinato nome host con il nome d’esempio “spammerhost.com“, basterà inserire:

# INZIO blocca IP di spammer e troll
order allow,deny
deny from 188.170.120.110
deny from 99.122.100.10
deny from spammerhost.com
allow from all
# FINE blocca IP di spammer e troll

Esempio pratico con file .htaccess finale, incluse le istruzioni precedenti di WordPress ed un singolo indirizzo IP bloccato

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
# INZIO blocca IP di spammer e troll
order allow,deny
deny from 188.170.120.110
allow from all
# FINE blocca IP di spammer e troll

A questo punto il file è correttamente modificato e pronto il salvataggio nella root principale della webdirectory.

Qualsiasi indirizzo IP aggiunto alla lista di esclusione verrà bloccato durante l’accesso al server ed il visitatore (o bot o chicchessia) visualizzerà il codice di errore 403.

Un tipico messaggio potrà essere:

- Forbidden
- Non ci sono permessi per accedere a questo server
- You don’t have permission to access / on this server.
(etc)

Conclusione

Come già specificato all’inizio di questo articolo, il blocco di indirizzi IP lato server appartenenti a spammer e troll è senza dubbio un metodo efficace per limitare i messaggi indesiderati e consumo di banda ingiustificato.
Unito a plugin e servizi antispam, darà un taglio rilevante a messaggi di spam et simili.

E’ importante ancora ricordare che la scelta degli indirizzi IP da escludere dovrà essere fatta minuziosamente, per evitar di bloccare l’accesso a persone ed host non classificati come spammer, troll etc.

Esistono anche configurazioni più specifiche per la restrizione di accessi (Range IP etc..), per maggiori informazioni, è bene leggere le istruzioni fornite direttamente da Apache.

Nell’articolo è stata menzionata prevalentemente l’implementazione del file .htacces su siti/blog che girano sotto piattaforma WordPress.
Le regole imposte nel file .htaccess appartengono ad Apache e potranno quindi essere adattate anche per altre piattaforme CMS e siti web e pagine html varie.

Non ci assumiamo responsabilità per utilizzi impropri e/o scaturiti da errate interpretazioni.
Link sponsorizzati

Iscriviti ai Feed RSSSpiegazione FeedDiventa un Fan su Facebook

Inserito in: : In EvidenzaUtilità

Tags:

RSSCommenti (7)

Scrivi una risposta | Trackback URL

  1. Mario Loam scrive:

    Ottimo post direi.

    Mi tornerà senz’altro molto utile.

    Grazie

  2. Andrea Giavara scrive:

    Ottimo post!
    Consigli davvero utili, grazie Matteo!

    2 domande:
    - il plugin “Hiddy Antispam” lo avete provato? Funziona?

    -se trovo dei messaggi spam da un indirizzo ip, sono sicuro al 100% che appartiene ad un spammer? Hanno gli indirizzi fissi di solito?

    Grazie mille ciao a tutti!
    Andrea

  3. Matteo Dini scrive:

    Ciao Andrea,

    grazie a te per le domande molto utili !

    1 – Il plugin Hiddy direi che funziona molto bene. L’ho installato già da tempo e blocca circa il 90% dei bot.

    2- Solitamente gli spammer “professionisti” hanno indirizzi IP fissi e/o che appartengono ad un predeterminato range.
    Basta guardare le statistiche interne del sito per rendersene conto.
    Magari fai anche un traceroute dell’IP e vedi da quale nazione proviene.

    Tempo fa avevo un certo IP, proveniente da Panama, presente 24h, che tentava di mandarmi out il server. Bloocato dall’htaccess e finalmente eliminato.

    Ciao e grazie ancora :)

  4. Andrea Giavara scrive:

    Ottime idee Matteo, grazie!

    Sai anch’io ho avuto una specie di “attacco” che continuava a mandarmi il loop la homepage.
    Hanno dovuto scollegare il server dove risiede il mio sito per eliminare il problema.
    Comunque ogni santo giorno ricevo 5 commenti spam, ora seguirò i tuoi consigli.

    Grazie e ciao a tutti i lettori di Tecnopassion!
    Andrea

  5. raf scrive:

    i miei complimenti… trovare post del genere, così completi e precisi, non è facile…

    ho imparato una cosa nuova… :)

    matteo, ti faccio una domanda, che è quell aper la quale sono arrivato sul tuo sito…

    molte persone usano il loro spazio hosting, non solo per gestire il proprio sito, ma anche per “depositare” on line i loro file…
    allora pensavo: ma se così è, facendo un download offline partendo dal loro dominio, chiunque potrebbe vedere tutte le cartelle usate…

    quali sono i modi per salvare lo stesso i files online senza rischiare che li leggano altri?
    ho queste idee:
    1) creare una subdirectory e mettere un deny from all, di modo che nessuno potrà accedervi e vedere facendo uno scan; mentre il propriewtario del sito potrà sempre accedervi tramite FTP oppure abilitandosì ove abbia un ip statico
    2) usare una cartella del proprio ftp che si trovi allo stesso livello della root delle cartelle iniziali dei domini così gestiti… in tal modo mi sembra che non vi si possa accedere normalmente (facendo uno scan o digitando un url) ma solo con http://FTP...

    corretto?

    • Matteo Dini scrive:

      Ciao Raf,

      ti ringrazio dei complimenti.

      Entrambe le modalità da te descritte sono corrette e vietano quindi l’accesso non autorizzato a determinate directory.

      Puoi utilizzare anche un sistema più semplice, sempre via FTP, impostando i privilegi di una directory necessari per bloccare l’accesso da fonti esterne.
      In questo modo, è possibile far risiedere una directory anche all’interno della root web.

      I privilegi puoi impostarli facilmente da un comune client FTP (comando CHMOD).

      Puoi utilizzare anche file .htaccess congiuntamente al file .htpassw, per limitare l’accesso ad un cartella con password.

      Prova a scrivere “.htpasswd” su Google, e ti troverai migliaia di siti che trattano l’argomento, generatori etc.

      Ciao

  6. Marco Fazzini scrive:

    Ma perchè ieri quando ho provato il

    deny from nomehost.it

    funzionava e adesso non funziona più?

Scrivi un commento