Trilema anti-spam.

Sunday, 24 May, Year 1 d.Tr. | Author: Mircea Popescu

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.

Category: 3 ani experienta
Comments feed : RSS 2.0. Leave your own comment below, or send a trackback.

31 Responses

  1. krossfire`s avatar
    1
    krossfireinsigna de prim sosit 
    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.

  2. Mircea Popescu`s avatar
    2
    Mircea Popescu 
    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.

  3. krossfire`s avatar
    3
    krossfireinsigna de prim sosit 
    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.

  4. Mircea Popescu`s avatar
    4
    Mircea Popescu 
    Sunday, 24 May 2009

    Tu ai renuntat sa-ti mai pui link ? Sau ti=l belesc eu ?

  5. Mircea Popescu`s avatar
    5
    Mircea Popescu 
    Sunday, 24 May 2009

    Mda. Reparat. Sorry.

  6. Cristian Lisandru`s avatar
    6
    Cristian Lisandru 
    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"!

  7. Mircea Popescu`s avatar
    7
    Mircea Popescu 
    Sunday, 24 May 2009

    Fa-ti modificarile si scapi.

  8. romania inedit`s avatar
    8
    romania inedit 
    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 !

  9. implementat solutia 3. cred ca rebuie sa fie oarecare lipsuri:
    - ai un care nu se inchide,
    - apar niste litere ciudate la autor comentarii.

  10. Mircea Popescu`s avatar
    10
    Mircea Popescu 
    Sunday, 6 December 2009

    Neah, inseamna ca n-ai pus tu unde trebe.

  11. pai lamureste si tu chestiunea ca sa nu isi prinda lumea urechile. :D

  12. 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

  13. Mircea Popescu`s avatar
    13
    Mircea Popescu 
    Sunday, 6 December 2009

    Un ce ?

  14. un p de la paragraf la comments

  15. Mircea Popescu`s avatar
    15
    Mircea Popescu 
    Sunday, 6 December 2009

    Pai ala depinde de tema mei. Unele au altele n-au.

  16. verifica ce ai pus in post. ai un p tag in deschidere dar ai uitat sa il pui in coada.

  17. Mircea Popescu`s avatar
    17
    Mircea Popescu 
    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.

  18. si mai e o chestie. Cand faci update la Wordpress trebuie sa rescrii in wp-comments-post.php. Idem daca faci update la tema.

  19. Mircea Popescu`s avatar
    19
    Mircea Popescu 
    Saturday, 26 December 2009

    Pai daca ai chef, apuca-te si rescrie-o ca un widget/plugin sometime.

  20. Cristian`s avatar
    20
    Cristian 
    Tuesday, 26 April 2011

    HMAC + MD5 > MD5 + salt

  21. Mircea Popescu`s avatar
    21
    Mircea Popescu 
    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.

  22. Cristian`s avatar
    22
    Cristian 
    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)

  23. Mircea Popescu`s avatar
    23
    Mircea Popescu 
    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

  24. Lawrence`s avatar
    24
    Lawrence 
    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

  25. Mircea Popescu`s avatar
    25
    Mircea Popescu 
    Wednesday, 17 April 2013

    It is extremely difficult and dangerous. Nothing anyone should attempt. Quoth the classics :

    The punk rolled up his big blue eyes and said to the blogger , “Sandy,
    I’ve typed and typed and published too, but I ain’t seen any candy.
    I’ve typed and typed till my feet are sore and I’ll be damned if I type any more
    To be buggered sore like a blogger’s whore In the Big Rock Candy Mountains.”

    Take heed.

  1. [...] fara mare efort sau dificultati. N-as mai reveni asupra discutiilor pe tema, le puteti citi aici si aici de exemplu, cu tot cu aplicatii [...]

  2. [...] 2006 powered by Trilema Antispam [...]

  3. [...] dofollow blog using Trilema Antispam [...]

  4. [...] spamuri ? Mnoa, ce frumos, iata ca dupa lupte seculare care au durat un an si sase luni, adica din 24 Mai 2009, cind am scris articolul precedent pe acasta tema, spamerii au reusit in cele din urma sa treaca de [...]

  5. [...] The plot thickens. ———Folosesc in schimb metode creatie proprie. [↩] Rubrica: Meta psihoza Puteti urmari raspunsurile prin fluxul RSS 2.0. Puteti lasa [...]

  6. [...] http://polimedia.us/trilema/2009/trilema-anti-spam/ Sub 5% spam in 14k [...]

Add your cents! »
    If this is your first comment, it will wait to be approved. This usually takes a few hours. Subsequent comments are not delayed.