Tempo di Lettura: 3 minuti
Ultimamente il plugin matematico anti-spam Did You Pass Math iniziava a creare qualche problema: molti, infatti, si erano lamentati che sbagliava a fare le somme (a volte anche con lo 0). Ho dato un’occhiata al codice ma apparentemente non era errato e quando lo provavo io, per la solita legge di Murphy, funzionava sempre. L’unico dubbio era il fatto che siccome si appoggiava ai cookie di sistema per recuperare la somma, forse il problema poteva risiedere in una non perfetta compatibilità (documentata o non) tra browser e release di browser diversi. Certo questo era un plugin molto comodo in quanto bastava attivarlo e se si usava un browser standard di tipo K2 funzionava egregiamente (per i più esperti esistono solo due variabili da settare per l’uso dei cookie e di un template di tipo k2).
Ho trovato, quindi, un nuovo plugin per WordPress per un antispam matematico: Math Comment Spam Protection Plugin. Ma che differenza c’è con Did You Pass Math? Innanzitutto il codice è completamente diverso e non è solo una semplice riedizione; inoltre è presente una comoda area di amministrazione del plugin antispam raggiungibile da Opzioni->Math Comment Spam: qui è possibile personalizzare (e localizzare in italiano) i messaggi di errore e il tipo di operandi da utilizzare nella visualizzazione della somma come:
– 1~1, 2~2, 3~3, 4~4, 5~5, 6~6, 7~7, 8~8, 9~9, 10~10 (per avere una domanda tipo: quanto fa 5 + 7?)
– 1~uno, 2~due, 3~tre, 4~quattro, 5~cinque, 6~sei, 7~sette, 8~otto, 9~nove, 10~dieci (per avere una domanda tipo: quanto fa cinque + sette?. Attenzione questo genere di domanda può far venire dei dubbi su come scrivere la risposta. Attualmente il plugin supporta solo una risposta numerica ma nulla vieta di implementare un hack per accettare anche risposte testuali)
Il vantaggio è che si può scegliere fino a che cifra si può fare la somma (non è detto che si voglia per forza fare la somma di numero fino a 10) a scapito, però, della immediatezza della somma.
Però mentre Did You Pass Math funziona da subito con una semplice attivazione del plugin ma SOLO per temi standard (come K2), Math Comment Spam Protection Plugin funziona su TUTTI i temi ma per contro, dopo l’attivazione, richiede una modifica del file comments.php del proprio template.
Ovviamente la modifica manuale dei file permette, al contempo, di posizionare il proprio codice anti-spam ovunque si voglia!
Inoltre questo plugin non necessita che il browser dell’utente abbia i cookies abilitati. Infine, c’è un altro aspetto da non sottovalutare: se con Did You Pass Math si sbagliava la somma, siccome veniva ricaricata la pagina, si perdeva il contenuto del commento anche se si tornava indietro di una pagina (anche se sul mio sito, avendo i commenti in ajax non veniva ricaricata mai una nuova pagina e quindi i commenti non si perdevano). Con Math Comment Spam Protection Plugin questo non accade.
Il bello è che sul sito ufficiale si avverte, in tutta onestà:
Any ways: if you are afraid of modifying the source code of your theme, I recommend that you go for the Did You Pass Math? plugin.
ATTENZIONE: la prima volta che si attiva il plugin e si carica una pagina con i commenti potrebbe venire fuori questo messaggio di errore:
Warning: array_rand(): Second argument has to be between 1 and the number of elements in the array in /wp-content/plugins/math-comment-spam-protection.php on line 65
Per risolvere il problema basterà andare nell’area di amministrazione del proprio sito, Opzioni->Math Comment Spam e cliccare sul pulsante “Aggiorna opzioni”. Dopodicché l’errore non sarà più visualizzato.
UPDATE: Mi sono accorto che, a differenza di prima, ora il codice antispam viene chiesto anche all’amministratore del sito. Ho quindi provveduto a modificare il codice che bisogna inserire nel file comments.php del proprio template, inserendo il controllo se l’utente loggato è ‘admin’ (riporto solo il codice iniziale che ho modificato):
NOTA: Ringrazio tutti coloro che mi hanno segnalato i problemi con il vecchio plugin e se volete provare il nuovo... commentate pure senza tregua questo articolo 🙂
Io sto sviluppando un plugin simile a questo nel funzionamento, ma basicamente meno invasivo: Prima di tutto, infatti, il commento viene passato ad Akismet.
Se Akismet lo segnala come spam (anche se magari non lo era affatto, Akismet non è infallibile!) all’utente appare una domanda matematica del genere, che se risolta correttamente può bypassare il filtro di Ak.
Anche il mio fa delle somme del tipo cinque sette, e una funzionalità sarà quella di fargli accettare risposte solo letterali (“dodici”)…
Penso che attivando Akismet e cambiando nome (e riferimento) a wp-comments-post.php si riduce di mooooooltissimo lo spam.
Carino il plug-in peccato che se preso di mira…è facilmente oltrepassabile (molto più di un captcha, che però rompe di più a compilarlo da utente normale).
PS: E’ la prima volta che posto un commento qui..e vedendo sotto la protezione anti spam mi sono chiesto “ma dovrò dire il risultato in cifre o lettere? cioè 9 o nove?” magari accetta tutti e due…nn so ora provo 😛
anche a me una volta mi ha detto di fare “7 3” che se non erro fa 10, ma non accettava il risultato. Vediamo come funziona questo anti-spam 😀
non mi accetta il segno “più”, avevo scritto “7 più 3” in forma matematica. Un’osservazione, non cambia la somma da fare questo plugin: nel commento di prima dovevo fare tre sette ed anche adesso
@Fornaio: Scusa non ho capito bene l’ultimo commento…
Grande Andrea: appena l’hai finito mi offro volontario per testarlo 🙂
In effetti supponevo che scrivere la domanda con i numeri in maniera letterale facesse venire qualche dubbio: ora lo rimetto in maniera da visualizzare la semplice somma tra numeri.
Odio tutti i generi di captha e simili.. viva akismet e basta!
Mi sono accorto che, a differenza di prima, ora il codice antispam viene chiesto anche all’amministratore del sito. Ho quindi provveduto a modificare il codice che bisogna inserire nel file comment.php del proprio template, inserendo il controllo se l’utente loggato è ‘admin’ (nell’articolo ho riportato solo il codice iniziale che ho modificato):
@thisend: lo so ma akismet, perlomeno a me, non è perfetto e vorrei essere sicuro che quando non controllo il sito, non venga saturato da commenti di spam! Adesso sto iniziando una guerra contro lo spam di trackback: akismet li gestisce bene ma siccome me ne arrivano un centinaio al giorno e non mi va di scorrermeli tutti alla ricerca del commento bannato per sbaglio, sto cercando un alternativa. Adesso ne sto provando uno…se va farò una piccola recensione.
@Daniele Simonin: Ho provato già questa tecnica: ho rinominato i file wp-comments-post.php e wp-trackback.php con nomi casuali; quindi ho sostituito nel mio template il riferimento al wp-comments-post.php nel file comments.php, e il riferimento al wp-trackback.php nei file wp-includes/comment-functions.php e in wp-includes/template-loader.php, ma il risultato è stato che (sarà anche stata una coincidenza) ricevo più spam di prima sui trackback e sui commenti!
nel primo dei due commenti ho scritto “7 3”, tra il 7 ed il 3 ci deve essere il segno “più” che non viene accettato. Inoltre, come somma da fare per il secondo commento avevo la stessa somma del primo ed anche risolta (avevo la casella di riempimento già completata con il risultato). Non so se mi son spiegato bene 😀
@Il Fornaio: Capito! Hai ragione: il più non viene preso! Strano ma penso dipenda da un controllo di wordpress per evitare che vengano scritti comandi invasivi.
Per la somma dell’antispam potrebbe essere un caso che siano venuti gli stessi numeri (ce ne sono solo 10). Fino ad ora ho solo ottenuto valori diversi 🙂
Capisco! A quanto pare allora sono l’unico ad aver ottenuto lo stesso valore per due volte di fila 😀
Giocare al lotto no eh?
@Antonio: se lo vuoi provare.. ben venuto: è ancora in fase di perfezionamento, in realtà, ma il suo funzionamento è semplicissimo.
E un vantaggio immediato è che la lista di moderazione di Akismet si riduce ai soli trackback e pingback (ovviamente non chiedo una somma ad un computer), che sono relativamente pochi rispetto ai commenti normali…
@Andrea Micheloni: lo proverò volentieri… 🙂 peccato che la mia lista di spam trackback e pingback è molto ma molto lunga! sigh
Per i ping/trackback non c’è molto da fare, dato che sono fatti comunque da un bot… potrebbe esserci la verifica, se nell’URL riportata c’è davvero un backlink, ma gli spammers riescono a evitare anche questo ostacolo 🙁
Pingback: Levysoft » Combattere lo Spam dei trackback 15 Gennaio 2007
[…] Qualche giorno fa scrissi del nuovo plugin WordPress che ho installato per implementare un sistema di anti-spam captcha di tipo matematico. Oggi voglio parlarvi di un altro plugin, dello stesso autore del precedente, nato con lo scopo di combattere lo spam dei trackback, spam che (insieme ai pingback) bypassa qualsiasi sistema di captcha poiché, visto che sono automatici, non si possono fare domande aritmetiche e domande di riconoscimento testi ad un computer. E’ vero che Akismet funziona egregiamente (a volte anche troppo bannando anche utenti normali) e rileva, senza troppi problemi, un messaggio di trackback di spam, ma il problema è che ricevendo centinaia di messaggi di spam al giorno, risulta noioso andarsi a guardare pagine e pagine di spam. Ecco perché mi sono rivolto a Simple Trackback Validation Plugin. Ho fatto un test di un paio di giorni: su 252 messaggi di spam, 223 trackback sono segnati come spam (per ora li ho lasciati in moderazione ma poi li eliminerò direttamente), e 29 sono lasciati passare ma vengono comunque bloccati da Akismet: forse questi sono pingback. Chi sa come distinguere i due tipi di notifiche su WordPress? […]
Con qualche regola .htaccess (solo 2 righe) ho ridotto lo spam del 60% sfruttando il fatto che il referer di wp-comments-spam.php deve essere il dominio stesso.
http://read.melodycode.com/news/289/piccolo_rimedio_per_ridurre_lo_spam_per_wordpress.html
non prendete questo commento come spam 🙂
PS: Ogni mattina mi svegliavo e dovevo cancellare circa 60 commenti dalla coda di Akismet, mentre ora ‘solo’ 20.
@Daniele: Grazie del suggerimento! 🙂
Ho installato anch’io questo ottimo plugin sul mio sito ma mi chiedo una cosa: per quanto tempo resisterà? Siccome tutte le possibili somme fra due numeri da 1 a 10 sono 11^2 = 121 ma in realtà i possibili risultati sono solo 19 (da 1 più 1 = 2 a 10 più 10 = 20), basterà che lo spammer preveda di sparare un risultato a caso e incrementare di 19 volte la quantità di messaggi indesiderati. Ed ecco che si ritornerà alla situazione precedente, come se il plugin non ci fosse. La soluzione? Permettere somme con numeri da 1 a 100 permetterebbe di elevare questo limite da 19 a 199 incrementando in fondo di poco la difficoltà di calcolo.
Pingback: I limiti del plugin Math Comment Spam Protection at Boliboop 24 Febbraio 2007
[…] lo spam insieme all’ormai celebre Akismet. Come ho scritto in un commento sul blog di Antonio mi chiedo una cosa: per quanto tempo resisterà questo sistema? Siccome tutte le possibili somme […]
Pingback: Continua la Lotta Contro Lo Spam KromeBlog - il blog di Sergio Longoni 1 Aprile 2007
[…] questo motivo ho deciso di utilizzare il sistema proposto da Levysoft: math comment spam protection […]
Pingback: Levysoft » Come per risolvere automaticamente la somma del captcha matematico con Javascript 2 Agosto 2007
[…] mese fa, stanco di aver un captcha grafico poco accessibile (anche a detta del W3C), ho introdotto nell’area commenti del mio blog, un captcha matematico, in grado di reggere le ondate di spam […]
Pingback: Levysoft » Come inserire una immagine in un campo di testo: esempio applicato al campo antispam matematico 14 Agosto 2007
[…] aver introdotto nei commenti il captcha matematico e aver inserito una facility per lo user-uman, ho pensato di dare un tocco grafico al campo […]