I commenti di spam costituiscono spesso un grande problema per i blogger e per chi utilizza WordPress. Di recente su Karibusana ho osservato un aumento nel numero di commenti posizionati in coda di spam e rilevati dall’ottimo plugin Akismet. Dopo un’attenta ricerca sul web per migliorare la mia conoscenza e capire quali ulteriori misure mettere in atto per ridurre il problema, ho deciso di pubblicare questo articolo cercando di descrivere il problema per capire come arginarlo e quindi combatterlo con le tecniche disponibili.
Partendo dal presupposto che non è possibile trovare un metodo “definitivo” e permanente per controllare lo SPAM l’unica arma è tenersi informati e aggiornarsi su quali sono e come si evolvono le tecniche utilizzate dagli spammers. Nonostante i commenti di spam non vengano pubblicati ma solo archiviati nella coda di moderazione questi occupano spazio nel database appesantendolo influenzando anche il tempo di caricamento del vostro sito web.
Cosa sono gli Spambots e come lavorano
Uno spambot è semplicemente un computer che invia in automatico commenti di spam. Nel caso di un blog creato in WordPress questi software sono in grado di compilare automaticamente i moduli dei commenti o di registrazione e inviarli al destinatario.
Combattere lo spam con .htacces e il modulo per la riscrittura delle URL (mod_rewrite)
Prima di iniziare dobbiamo tenere presente che la maggior parte degli spambot operano da reti di computer zombie e pertanto utilizzano degli IP random, questo significa che bloccando definitivamente questi IP potrebbe anche causare problemi agli utenti normali. Una tecnica utilizzata dagli spambot è quella di sfruttare il file di WordPress wp-comments-post.php riuscendo così ad inviare commenti anche se questa funzione è stata disabilitata nelle impostazioni generali d WordPress.
Come funziona questo sistema? Quando un lettore posta un commento il loro browser interroga WordPress indicandogli su quale pagina si vuole lasciare un commento, tutto questo avviene grazie alla possibilità del browser di accedere al file wp-comments-post.php
Quando un utente (non uno spambot) decide di lasciare un commento, compila il modulo dei commenti attraverso il file comments.php e nel momento in cui preme il pulsante “invia” viene iniziato lo script PHP all’interno del file wp-comments-post.php il quale permette di postare il commento. I software di spam di solito agiscono direttamente sul file wp-comments-post.php bypassando il file comments.php, questo causa delle richieste HTTP che però non derivano dal vostro dominio e pertanto riuscendo a bloccarle è possibile ridurre drasticamente la quantità di spam. Per fare questo è necessario modificare il file .htaccess aggiungendo la seguente stringa (Ricordatevi sempre di fare un backup del file prima di modificarlo).
Questo codice verrà attivato quando la funzione POST è richiamata, e indirizza il commento di SPAM all’indirizzo IP che lo ha generato.
NOTA BENE: nella quarta linea dovrete modificare yourdomain.com con il nome del vostro dominio senza utilizzare www o qualsiasi altro prefisso.
Utilizzando queste semplici tecniche sono riusciti ad ottenere ottimi risultati passando da più di 27000 messaggi di spam, individuati da Askismet nel mese di giugno, a 4000 messaggi nel mese di luglio. Come potete vedere nella seguente immagine.
Eliminare migliaia di commenti di SPAM
Un grande problema spesso collegato allo spam è la numerosa quantità di commenti da rimuovere, questi infatti oltre ad appesantire il database, occupano spazio inutile. La funzione “svuota spam” di WordPress non riesce a gestire una così grande mole di commenti perché richiede un’allevata quantità di memoria PHP che spesso su un server condiviso non è disponibile. Pertanto, qualora vi troviate in questa situazione dovete manualmente ripulire il database MySql di tutti i commenti indesiderati, per fare questo vi basta eseguire la seguente Query SQL.
DELETE FROM wp_comments WHERE comment_approved = 'spam' DELETE FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments)
Sperando che il plugin Akismet migliorerà con il tempo la sua capacità di gestire lo SPAM, vi consiglio di utilizzare altre tecniche e di tenervi sempre aggiornati.
Lascia un commento