Wordpress e spam sui commenti: una soluzione contro la spammatura
Gennaio 13th, 2007 by Voodoobytesman
Miei cari amici di Wordpress,
da tempo ero infastidito da moltissimi commenti spam su questo blog. Immagino succeda anche a molti di voi.
Ho fatto un po' di ricerche e le soluzioni sono molteplici anche se ognuna hai suoi pregi ed i suoi difetti. La più efficace e semplice sembra quella di attivare il plugin Akismet, che è preinstallato, ma necessita di una chiave Wordpress. Qui è spiegato come fare.
Poi mi sono detto: in fondo qual'è il tallone di Achille di tutti questi sistemi? Manca il fattore umano. Ovvero l'introduzione di un fattore che distinguesse il "postaggio" fatto da sistemi automatici di "spammatura" da quello fatto da un umano.
E allora ho deciso di introdurlo. Niente di particolarmente innovativo, non è altro che una versione semplificata di quelle immagini con le scritte tutte storte che si trovano in alcuni siti, per registrarsi o attivare un servizio, e che servono ad impedire letture d aparte di procedure automatiche.
Il mio sistema è mooOOoolto più semplice, ma apparentemente efficace. Scoprite come…
Ho fatto due semplicissime modifche al file wp-comments-post.php della root e comments.php del tema in uso (non vi fate spaventare da quanto vedete sotto, in tutto sono solo 7 righe di codice da aggiungere:
Come agire su wp-comments-post.php:
Individuate le seguenti quattro righe:
$comment_author = trim($_POST['author']);
$comment_author_email = trim($_POST['email']);
$comment_author_url = trim($_POST['url']);
$comment_content = trim($_POST['comment']);
Subito dopo copiate ed incollate quanto segue, ma ATTENZIONE: se aggiornate Wordpress perdete questa feature e dunque dovrete rifare la modifica!
// anti spam fatti a mano, come una volta —————————————————————-
$findme = '§';
// ho scelto il carattere § (quello sopra la ù perchè è poco probabile che ce ne sia bisogno in un post. Potete sostituirlo con qualsiasi carattere
$pos = strpos($comment_content , $findme);
if ($pos===false) {
// mail("vostro indirizzo", "Commento cancellato", $comment_content . " da: " . $comment_author_email);
//scommentate (ovvero levate le due // all'inizio) della riga precedente riga se volete una mail di avvertimento quando un comemnto è rifiutato; è un po' masochista, ma almeno le prime volte si gode…
//mail($comment_author_email, "Comment refused because is a spam!", "FYS…");
// scommentate (ovvero ecc. ecc…) la riga precedente se volete inviare un insulto allo spammatore; non è consigliato, ma può far piacere
echo "Dear " . $comment_author . "(". $comment_author_email . ")," . "you spams!"; // output a video
exit;
} else {
$comment_content = str_replace("§", "", $comment_content);
}
// fine anti spam ——————-
Salvate. Uploadate se lavorate prima in locale.
Poi aprite il comments.php del vostro tema (directory wp-content/themes/nomedeltema) e subito prima del campo ove il vostro visitatore deve inserire il commento scrivete, bello evidente:
ATTENZIONE: Inserisci il carattere § (quello sopra la ù) in un punto qualsiasi del commento (verrà tolto automaticamente). Serve per evitare spammatori automatici.
Salvate. Uploadate se lavorate prima in locale.
In questo modo, con la modifica effettuta, se nel commento viene trovato il carattere § (o quello scelto)
1. il commento passa
2. viene totlto il carattere §
altrimenti
a video appare la scritta
Dear, nome e e-mail (anche se ovviamente finte dello spamamtore), You spams! e il tutto si blocca. Il commento-spam non raggiunge il vostro blog.
Lo so, è tutto perfettibile e nei prossimi giorni, se avrò tempo e voglia, lo perfezionerò. Si può inserire caratteri casuali ad ogni commento, metterli come immagine, tante belle cose. Se qualcuno vuole svilupparlo, ben felice. Me lo faccia sapere.
Io intanto, da quando lo'ho attivato, mi godo questa meravigliosa assenza di "rumore semantico" sul mio blog…
(Ora in effetti mi sento un po' più solo, appollaiato sul mio blog nel vuoto del cyberspazio)
 e inserire una cifra? tipo 888? è possibile? o una lettera ripetuta come per es. CCC Può sembrare una stupidaggine ma scegliendo quel simbolo ti scludi dei commenti da chi magari è alle prime armi con la tastiera del pc. Magari sta usando una tastiera non sua….
Sì, si può sostituire nel codice il carattere  con qualsiasi sequenza. Almeno credo. Provate.