giovedì 23 agosto 2007

Mawk, sine e lo spam sui commenti

Da parecchio tempo ormai il sito mawk è tempestato di spam sui commenti, ma mentre prima avveniva abbastanza sporadicamente, ora è un fenomeno quasi continuo.
La piattaforma su cui si basa il sito è sine cms, un progetto di 2 ragazzi italiani (di cui uno se non sbaglio girava dalle parti di hacker school). Sinceramente non ho usato questo cms a sufficienza da poterne dare un giudizio critico. Per cui mi limiterò all'ambito del problema.

Secondo me, prima di tutto, c'è qualcosa da controllare a basso livello: per esempio se si inserisce un nuovo commento cambiando il parametro hidden dell'id del post, riesco ad inserire un commento su un articolo inesistente, per prova infatti ho inserito come id del post 999. Il risultato è che è stato pubblicato tranquillamente in homepage, tra gli ultimi commenti. Un vincolo referenziale di chiave esterna eliminerebbe rapidamente questo problema delegandone la gestione al dbms, ma basterebbe anche effettuare una query sulla tabella delle news prima di accettare di inserire il commento.

Guardando la struttura del database, si nota una cosa che non mi piace molto: nella tabella dei commenti non viene loggato l'indirizzo ip. Bisognerebbe prima di tutto sapere se c'è una volontà precisa dietro questa scelta o solo una svista, ma il sito ufficiale sine è giù da mooolto tempo. Beh, cmq il modo più efficace per controllare che uno stesso utente non stia spammando è fare dei controlli sul database prima dell'inserimento della nuova entry: controllare se quell'ip ha lasciato un commento da poco tempo (poi c'è il problema di quantificare, ma vabbè)

Un'altra soluzione sarebbe tenere traccia nella sessione utente, ma è aggirabile rapidamente, cancellando i cookie di sessione, ma si può iniziare ad implementare questa per comodità e rapidità di esecuzione. E' sicuramente da valutare.
Sarebbe anche interessante capire con che UserAgent si presentano gli spammer. Su arabianfenix avevo implementato un metodo per bloccare l'inserimento di contenuti da parte di utenti senza javascript attivato, contando di intercettare e bloccare così il software dello spammer. Ma evidentemente in quel caso era un utente particolarmente simpatico che arrivava lì col proprio browser e aggiungeva un commento con decine di link.. che fondamentalmente non può essere bloccato. Invece nel caso di mawk pare più una cosa automatica, anche perchè vengono inseriti una sessantina di commenti a botta, per cui una soluzione di check prima di inserire è assolutamente da introdurre.

Il tutto per tentare di porre limiti all'attività degli spammer, prima di cominciare a mettere gli odiosissimi captcha..

Nessun commento: