Trilema antispam redux
Ingaduiti-mi sa va impartasesc cite ceva din experienta de-a fi bloger de-asta de succes sau cum naiba se zice :
Bun asa ? Cit numarati in ora aia, de la 10:02 la 10:50, sa tot fie fo 11 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 metodele descrise acolo, in principal aia cu $suffix = substr(md5(date(’Y-m-d’).”salt.no,rly.salt.”),0,6);
In tot acest interval am primit poate doua mii de spamuri, in marea majoritate facute cu mina, ceea ce este totusi o realizare pentru un blog care nu foloseste akismet, desi este cel mai traficat blog din Romania.
Ziceam atunci
Si cu asta ma gandesc c-am sfarsit-o cu spamul pe blog macar inca 5-6 luni. Noi sa fim sanatosi.
Ei, au fost 18 luni, nu 5-6, ce-i drept, dar totusi iata ca toate lucrurile bune trebuie sa aiba un sfirsit, si nici asta nu face exceptie. Ce ne facem de-acum incolo ? Introducem si noi akismet, sa pierdem comentarii legitime, ca restu' ciurdei ? Parca nu prea. Si atunci ?
Pai, hai sa vedem... oare cum procedeaza dujmanul ? A mai fost unul pe care l-am prins atunci cu un regexp in htaccess, poate merge.
Ei, hai sa tragem aer in piept si sa admiram frumusetea mizeriei. Este ca-i perfect facut ? Direct pe articol, al carui titlu/url il cunoaste evident dintr-o sesiune de spidering anterioara. Dupa care pe wp-comments-post, cu referrer, cu tot ce se cere. Ce ne facem ?
Pai ce sa ne facem, iaca, ne facem in doi pasi :
Pasul I. Editam comments.php din wp-content/themes/[numele temei]/
-
Dupa
<input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" /></p>
adaugam
<input type="hidden" name="comment_post_time" value="<?php echo time(); ?>" /></p>
Pasul II. Editam wp-comments-post.php din root
-
Inainte de
// If the user is logged in
$user = wp_get_current_user();
adaugam
ifi wp_die( __('Sorry, we do not accept comments from spammers.') );
Mnoa ia sa vedem, cite luni de liniste ne asigura smecheria astalalta ?
PS. Rogu-va daca tot ati citit lasati si-un comentariu, ca sa nu mai trebuiasca sa verific eu ca n-am stricat oarece. Va multumesc :)
PPS. Notam aici o bucatica de SQL care se poate dovedi utila :
-
SELECT comment_author_IP FROM `comments` WHERE `comment_date_gmt` > '2010-10-30 03:51:27' AND `comment_approved` LIKE 'spam' ORDER BY `comments`.`comment_author_IP` ASC
- time() - ($_POST['comment_post_time']) < 2)||($_POST['comment_post_time'] == 0 [↩]
Sunday, 28 November 2010
*~@* un comentariu *@~*
Sunday, 28 November 2010
Hei, ce ti-o patit blogu' ?!
Sunday, 28 November 2010
Shhh!!
Sunday, 28 November 2010
Imi aduc aminte de momentele cand nu foloseam Akismetul si nu foloseam nicio alta solutie, dar am stat aproape o saptamana sa sterg cate 200 de comentarii spam, majoritatea generate automat, de pe blog.
Sunday, 28 November 2010
@i4ever Eu primesc cam unul, hai maximum 2-3 pe zi. Avind in vedere ca in aceeasi zi primesc vreo 50 normale, din care cam 3-4-5 au nevoie de moderare ca ori contin link-uri ori sunt de la oameni noi, pot zice ca nu ma deranjeaza mai deloc.
Deocamdata cu metodele astea spamul automat este cam 20-50% din spamul manual. Ceea ce...
Monday, 29 November 2010
io nu-s sigur c-am inteles mecanismul
Monday, 29 November 2010
Prima parte, comments.php, care se ocupa de tiparit html-ul care tine de postari, sub articole, inclusiv casuta de comentarii, adauga un cimp custom care contine timpul curent.
wp-comments-post.php, care se ocupa cu procesat comentariile noi, verifica daca exista cimpul respectiv in form-ul pe care noul comentariu pretinde ca l-a completat. Daca nu se potriveste cu asteptarile trimite comentariul la gunoi.
Monday, 29 November 2010
il tinem minte pentru cand om avea galeata de spam.