Trilema anti-spam.
Chiar daca nu foloseste akismet, Trilema primeste destul de putin spam, in cinci luni s-au strans 377 spamuri la 4000+ comentarii. Niste rezultate destul de bune, la care am ajuns in felul urmator :
1. Scotand toate tagurile care identifica blogul ca ruland pe platforma Wordpress. Asa cum am mai spus,
Stiu ca lumea e de parere ca nu-i frumos. Nici nu-i.
Pe de cealalta parte, scoaterea semnaturilor WordPress dintr-un blog nou, anume, footerele, tagul meta, etc, reduce spam-ul pe un blog nou in proportie de 90% in primele 6 luni. Pe masurate si pe verificate. Daca incepeti un blog nou, n-aveti decat sa faceti incercarea si sa va convingeti.
Daca preferati o explicatie teoretica, robotii de WP spam au si ei spideri sau daca nu, folosesc un serviciu de cautare. Cum pot ei sa identifice o pagina web ca fiind un blog WordPress ? Cauta pe fiecare pagina niste semnaturi anumite. Ei. Scoateti-le.
2. Niste minime filtrari in .htaccess, ca de exemplu
RewriteEngine On
RewriteBase /trilema/
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} .t-1813 [OR]
RewriteCond %{HTTP_REFERER} .t-2389
RewriteRule (.*) http://%{REMOTE_ADDR}/$ [R=301]
Asta pentru ca singurul bot mai rasarit care se prinsese ca Trilema totusi exista, folosea niste referinte care includeau respectivele posturi.
Ei, protectia asigurata de 1 incepe sa scartaie, si azi am fost pleznit de 10 bucati spam in 5 minute. De data asta, facute profi, n-aveam ce filtra la ele, IP-uri diferite, cerere pe root intai, pe post a doua, pe wp-comments.php a treia. Referer impecabil. Agent comun. Treaba facuta brici. Evident, de rusi.
Din fericire, stiam ca va urma, si am solutia gata de luni de zile, asa ca implementarea mi-a luat 2 minute. Filosofia mea in legatura cu anti-spamul (mai pe larg aici) este ca solutiile trebuie sa fie intotdeauna indreptate impotriva economiilor de scala pe care se bazeaza spamul.
Sa luam ca exemplu concret solutia pe care am implementat-o azi. Priviti putin page-source la orice pagina ce include un form pentru comentarii. Vedeti cum la name="author" scrie de fapt name="authorblabla" ? Si la comment la fel ? Tot ce se cere e o mica modificare in wp-comments-post.php,
$suffix = substr(md5(date('Y-m-d')."salt.no,rly.salt."),0,6);
$comment_author = ( isset( $_POST[ 'author'.$suffix ]) ) ? trim( strip_tags( $_POST [ 'author'.$suffix ] ) ) : null;
si respectiv in comments.php a temei,
<p><input type="text" name="author<?
$suffix = substr(md5(date('Y-m-d')."salt.no,rly.salt."),0,6);
echo $suffix;?>" id="author" value="<?php echo $comment_author; ?>" size="22" tabindex="1" />
si gata ciocolata (atentie la ghilimele).
Evident, nimic nu va impiedica sa adaugati ce mai poftiti pe-acolo pe la salt, numele dusmanilor, hai Steaua, chiar numele postului etc.
Se poate intampla ca un comentator ghinionist sa nimereasca o schimbare de zi de cand primeste form-ul si pana cand il trimite completat, in care caz probabil il pierde, ceea ce ar putea fi destul de neplacut, si inca evaluez solutia din acest punct de vedere (avantajul de a folosi data e ca astfel cheile expira periodic, ceea ce poate fi o precautie exagerata). Solutii ar exista, oricum.
Si cu asta ma gandesc c-am sfarsit-o cu spamul pe blog macar inca 5-6 luni. Noi sa fim sanatosi.
Update, 12 decembrie : Pentru ca acum avem primul utilizator declarat al sistemului Trilema Antispam, sa mai dam niste date :
In ~12 luni de existenta (fara 19 zile), am primit 11,416 commentarii din care 10,270 ham si 1,146 spam, adica un spam ratio de 10.03% (fata de ~9.4% calculat pe datele din mai). Eu zic ca e bine.
Sunday, 24 May 2009
Eu am primit vreo 12 de la rusi azi si ieri seara...a trecut numai unul, restul au fost prinse fie de akismet fie de filtrele de pe blog (word filters + mici modificari - le arunca la moderate).
Oricum, asta nu e nimic...in 2007 a fost odata un val de spam dupa care m-am trezit cu 20 de spamuri intrate pe blog (cautat si ras manual) + vreo 100 si ceva in moderate in 2 zile.
Sunday, 24 May 2009
La mine pot zice ca n-o trecut niciodata un spam pe blog, si nici nu cred ca va trece vre-odata. Asta-i ca sa protejam lista de moderare.
Sunday, 24 May 2009
Cred ca la mine a fost si un comment de la romania inedit care facuse o gluma in rusa. Odata aprobat ala, wordpressul nu stiu ce mai putea crede.
Sunday, 24 May 2009
Tu ai renuntat sa-ti mai pui link ? Sau ti=l belesc eu ?
Sunday, 24 May 2009
Mda. Reparat. Sorry.
Sunday, 24 May 2009
Nu e zi să nu primesc vreo 30-40... Aproape că m-am obinuit cu ele, mai durează un pic până le spun şi "bine aţi venit"!
Sunday, 24 May 2009
Fa-ti modificarile si scapi.
Sunday, 24 May 2009
@ krossfire , am scris ceva in rusa , fara sa-mi dau seama ca ce aparuse mai inainte era un spam , cu toate ca-l tradusai sa vad ce scrie .
La mine akismetul face treaba buna , chiar daca mi-a bagat un comentariu al lui Mircea Popescu la spam !
Sunday, 6 December 2009
implementat solutia 3. cred ca rebuie sa fie oarecare lipsuri:
- ai un care nu se inchide,
- apar niste litere ciudate la autor comentarii.
Sunday, 6 December 2009
Neah, inseamna ca n-ai pus tu unde trebe.
Sunday, 6 December 2009
pai lamureste si tu chestiunea ca sa nu isi prinda lumea urechile. :D
Sunday, 6 December 2009
ok. faza e ca toate gilimele tale erau doar aparent ghilimele. le-am inlocuit cu din alea adevarate si acuma merge.
da tu tot ai un in plus la cod
Sunday, 6 December 2009
Un ce ?
Sunday, 6 December 2009
un p de la paragraf la comments
Sunday, 6 December 2009
Pai ala depinde de tema mei. Unele au altele n-au.
Sunday, 6 December 2009
verifica ce ai pus in post. ai un p tag in deschidere dar ai uitat sa il pui in coada.
Monday, 7 December 2009
Turcule, dupa fragmentul citat de mine mai urmeaza
<label for="author" etc etc
Deci, p nu se inchide inca, daca tema il are. Sigur, daca tema n-are, atunci nu il adaugi nici tu.
Friday, 25 December 2009
si mai e o chestie. Cand faci update la Wordpress trebuie sa rescrii in wp-comments-post.php. Idem daca faci update la tema.
Saturday, 26 December 2009
Pai daca ai chef, apuca-te si rescrie-o ca un widget/plugin sometime.
Tuesday, 26 April 2011
HMAC + MD5 > MD5 + salt
Tuesday, 26 April 2011
Daca e nevoie de asa ceva, se poate implementa, fara discutie. Deocamdata nu prea a ajuns sofisticarea inamicului cit sa necesitam cefalosporina asta, asa ca sa nu-i sarim o etapa, zic.
Tuesday, 26 April 2011
Am impresia că nu ar trebui să fie cu mult mai complicat:
substr(hash_hmac('md5', date(’Y-m-d’), ”siecriet”), 0, 6)
Tuesday, 26 April 2011
Nu-i complicat, eu ziceam privind din punctul de vedere potrivnic. Lasa-i pe oameni sa se chinuie sa colideze md5-uri, zic :D
Wednesday, 17 April 2013
Hey there! This is kind of off topic but I need some advice from an established blog. Is it hard to set up your own blog? I’m not very techincal but I can figure things out pretty quick. I’m thinking about making my own but I’m not sure where to start. Do you have any tips or suggestions? Thank you
Wednesday, 17 April 2013
It is extremely difficult and dangerous. Nothing anyone should attempt. Quoth the classics :
Take heed.