Categorie
Sviluppo software Tutorial

Spam e WordPress, come combattere gli spambot

Qualche idea per combattere lo spam su WP

wordpress spam  killer idea

Chi gestisce un blog WordPress sa come i commenti spam sottraggano risorse server e tempo a chi si trova a doverli moderare. Vediamo in questo post come combattere lo spam in maniera più efficace possibile.

I commenti spam sono generati da sistemi software che caricano gli articoli, identificano i campi del form di invio del commento e li compilano con testo spam, spesso contenente link creati a solo scopo SEO. Per evitare di inquinare i propri post con migliaia di righe di testo su rimedi medici, assicurazioni, unguenti miracolosi etc, la soluzione è impostare la moderazione dei singoli commenti in modo che vengano pubblicati solo dopo che l’admin li ha approvati uno per uno.

Su un blog a medio traffico come questo possono esserci anche 800/1000 commenti spam al giorno, cosa che si traduce in un carico server aggiuntivo non trascurabile, ed in un dispendio di tempo notevole per l’admin.

La soluzione più rapida è utilizzare un plugin che integri delle strategie di protezione dallo spam avanzate, come ad esempio Akismet o Spam Free WordPress. Entrambi questi plugin sono gratuiti (pur richiedendo la sottoscrizione di una API key) e proteggono dallo spam bloccando una buona percentuale di messaggi automatizzati, anche se i migliori risultati si ottengono “allenando” il motore di riconoscimento dei commenti non desiderati tramite la revisione delle scelte compiute dai plugin. Spam Free WordPress esiste in versione a pagamento sotto il nome di Simple Comments, e lo sviluppatore assicura una notevole produzione aggiuntiva al costo di 29 $ annui.

Un’idea per lo spam killer ideale

Qualora i moduli sopra citati non siano sufficienti o anche solo per cimentarsi nello sviluppo di un modulo “socialmente utile” uno spunto potrebbe essere il seguente.

Per prima cosa è necessario aggiungere un field nel form  di inserimento del commento, e nasconderlo tramite Javascript al caricamento della pagina. Gli spambot, non eseguendo il Javascript, trovano il field nel form, e lo riempiono con una stringa casuale, spesso contenente un link o un’espressione formata da keyword precise. Un utente umano, utilizzando un browser con supporto Javascript, non è in grado di riempire  (nè vedere) il field e quindi lo lascia vuoto. A questopunto il controllo lato server non deve far altro che escludere la fase di persistenza su disco per quei commenti che hanno il field non nullo.

Un altro metodo, eventualmente da combinare al precedente, potrebbe essere quello di sfruttare un nuovo field hidden che viene popolato con il timestamp corrente al caricamento della pagina e del form di inserimento commenti. Gli spambot tipicamente devono agire su milioni di URL per cui è raro che si soffermino su una pagina di inserimento commenti per più di 1/2 secondi. L’utente umano invece impiega anche diversi minuti per scrivere un commento, fattore che rende possibile escludere i bot filtrando sul risultato della sottrazione fra i millisecondi correnti al momento dell’inserimento del  commento e quello del campo hidden.

Queste due tecniche potrebbero essere tranquillamente combinate per realizzare un modulo che protegga dallo spam in maniera probabilmente ottimale. I vantaggi oltre che per ciò che concerne il risparmio di tempo in gestione, stanno anche nella gestione della macchina dedicata all’hosting che ha un carico decisamente minore sul DB.

Captcha…strumenti ormai superati

I captcha per qualche tempo sono sembrati la soluzione ideale. Compatti e socialmente utili per via dei progetti di digitalizzazione distribuita, si sono rivelati facilmente attaccabili e soprattutto limitanti per quello che è il tasso di utenti che completano il form rispetto alle richieste.

Oggi con pochi euro si acquistano librerie e prodotti standard che consentono di bypassare i captcha con una buona approssimazione

ELbuild, sviluppo custom PHP

ELbuild è in grado di sviluppare il tuo sito o la tua web application in maniera completamente custom, utilizzando PHP object-oriented ed i framework più diffusi, eventualmente integrando CMS open source. Contattaci per sapernedi più.

Di Luca Adamo

Luca Adamo si è laureato con lode in Ingegneria delle Telecomunicazioni all'Università degli studi di Firenze ed è dottorando in Ingegneria Informatica, Multimedialità e Telecomunicazioni, sempre nella stessa facoltà. Le sue competenze tecniche includono lo sviluppo software, sia orientato al web che desktop, in C/C++ e Java (J2EE, J2SE, J2ME), l'amministrazione di macchine Unix-based, la gestione di reti di telecomunicazioni, ed il design di database relazionali.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.