Komentarze – OpenID i walka ze spamem
Wszystko wskazuje na to, że od teraz możecie komentować wpisy na „silva rerum” przy użyciu OpenID. Yaay! :)
Użyłem pluginu WordPress OpenID Plugin z VerseLogic, bo polecany przez smoka OpenID Comments for WordPress najwyraźniej ma problemy z obsługą przekierowań w pliku yadis.xrdf więc za dużego wyboru nie miałem :)
W razie natrafienia na jakiś błąd z tym ustrojstwem związany proszę o informacje i z góry dziękuję.
***
Przy okazji pisania o technicznych zagadnieniach związanych z komentarzami na blogu dorzucę ze dwa słowa na temat walki ze spamem.
Niedługo po przenosinach z Joggera na WordPress zaczęły się pojawiać spamowe komentarze. Wtedy znalazłem wtyczkę Spam Karma, rozwiązanie któremu jestem wierny do dzisiaj. Sprawdza się nieźle, nawet gdy w szczycie musiała sobie radzić z ponad setką spamów dziennie. Wiem, że to i tak niedużo, ale taka popularność mi zdecydowanie wystarcza – i tak miałem problemy z przeglądaniem wyłapanych komentarzy w poszukiwaniu false positives (ze dwa razy się zdarzyły).
Rozglądając się po sieci za innymi rozwiązaniami trafiłem na plugin Bad Bahavior, odcinający spambotom dostęp do strony. Gdy się okazało, że może uzupełniać Spam Karmę nie zastanawiałem się dłużej. Teraz SK zajmuje się co najwyżej kilkunastoma spamami dziennie, a BB blokuje około pięciuset prób tygodniowo. Zrobiło się przyjemnie. Do czasu.
Ostatnio pojawiły się spamy, których nie blokuje BB, a Spam Karma wrzuca do moderacji. Właściwie nic strasznego – ot co jakiś czas trzeba kliknąć na przycisk wrzucający wszystkie moderowane do spamów i po sprawie. Nic strasznego, ale upierdliwe to jednak jest.
Wszystkie te spamy pojawiają się pod postami mającymi przynajmniej miesiąc-dwa, dlatego pomyślałem o automatycznym wyłączaniu komentowania wpisów starszych niż np. 30 dni. Znalazłem nawet odpowiednią wtyczkę… i się zawahałem. Ktoś przecież może chcieć dopisać coś do starszego wpisu, czasem się to przecież zdarza. Co prawda nie za często, ale zdarza. Dlatego się zastanawiam – z jednej strony ułatwiłoby mi to życie i utrudniło życie spamerom, ale z drugiej strony uniemożliwiam Czytelnikom reakcję na posty…
No i stąd właśnie moje pytanie – co sądzicie o takim rozwiązaniu? Będę wdzięczny za wszelkie opinie na ten temat.
Test :]
Lepszy, IMO, od SpamKarmy jest Akismet. Co do zamykania komentarzy w starych wpisach – bad idea :]
Test OpenID ^_^
test open id ;) – działa?
a co do komentarzy – to może przy starszych niż miesiąc dawać pole w stylu przepisz kod z obrazka albo ile jest 5+3 itp?
Zamykaj i tak tego nikt nie komentuje. No chyba, że masz jakieś wpisy, na które ludzie się łakomią z Google. Choć jak ktoś zachce, to możesz dać maila swojego pod takim postem.
Hmmm… widzę że sam znalazłem jeden błąd, ale nie we wtyczce od OpenID, tylko w Get Recent Comments, która odpowiada za listę ostatnich komentarzy. Nie pojawiają się na niej komentarze podpisane OpenID… :/
Nie blokuj komentowania, blokuj spamerów :)
Ja zauważyłem, że spamboty w ciemno atakują wp-comments-post.php który to zbiera formularz komentarzy i postuje je do bazy.
Ponieważ WordPress jest bardzo popularny, spamboty są przystosowane do domyślnego formularza.
Zabezpieczyłem testowo jeden z moich serwisów (karko.net – możesz zajrzeć w źródło jak chcesz) w następujący sposób:
1. Fragment z textarea zamieniłem na:
<p><textarea name="komentarzyk" id="komentarzyk" cols="60" rows="6" tabindex="4"></textarea></p>
<p style="display: none"><textarea name="comment" id="comment" cols="1" rows="1" tabindex="100"></textarea></p>
(jak widzisz, standardowe, atakowane przez spamboty pole comment ukryłem CSSem przed użytkownikami, a dodałem własne o ID=komentarzyk (spamboty tego nie zgadną :)
2. W wp-comments-post.php wprowadziłem taki fragment:
$comment_content = trim($_POST['komentarzyk']);
$comment_antispam = trim($_POST['comment']);
i dalej
if ('' != $comment_antispam)
die( 'Kombinowanie w formularzu komentarzy jest niewskazane ;) "Trochę" nie lubię spamu :) Wróć do poprzedniej strony' );
Działa to na tej zasadzie, że spamboty w ciemno wypełniają pole o comment, a nie wypełniają pola komentarzyk. Kod WordPressa jest zmieniony tak, by zamiast z pola comment brać wpis z pola komentarzyk. Ponadto, jeśli ktoś wypełni pole comment (które ma display:none, więc użytkownik go raczej nie widzi), komentarz nie jest dodawany.
Jest to rozwiązanie tak skuteczne, że Spam Karma jest bezrobotna (dotąd nie mam w niej ANI JEDNEGO spamu). W wolnej chwili napiszę kiedyś plugin do tego, ale póki co rozwiązanie jest proste do wprowadzenia ręcznie.
Nie wiem jak u Ciebie, ale u mnie ludzie często dopisują coś do starych tematów, więc nie pchałbym się w blokowanie komentarzy w starszych wątkach.
Jeśli Ci to na serio przeszkadza – blokuj stare wpisy. Czytają je zazwyczaj jedynie internauci, którzy wpadają na bloga przez Google ;)
Nareszcie :-)
Widziałem gdzieś takie rozwiązanie które pyta się ile to jest 2+5 i podobne pytania zadaje, może to było by rozwiązaniem – zawsze lepsze to niż captha.
test openID wordpress
Nie wyłączaj komentowania dla przychodzących z Google bo to chyba duża rzesza użytkowników. Proponuje obejrzeć Sblam!
Ja bym nie wyłączał. Sam często komentuję stare wpisy.
BTW. Trzeba było nie uciekać z Joggera to byś nie miał problemu :P
To mi się podoba, wystarczyło, że poprosiłem w komentarzu o OpenID i jest. ;-)
gshegosh: ciekawy pomysł, czekam na plugin :)
Hadret, wentuq: nie chciałbym zdawać się na rozwiązania na innych serwerach, dlatego nie korzystam z Akismet i Sblam.
trójkąt: za to byłbym skazany na captcha? Dziękuję, wolę swoje problemy.
Jajcuś: to nie Twój urok zadziałał, tylko wzmianka o Twojej Żonie :p
Dziękuję wszystkim za komentarze – poczytałem je, rozważyłem za i przeciw, no i przekonaliście mnie: zdecydowałem się nie wyłączać możliwości komentowania starszych wpisów – rzeczywiście mam kilka takich postów, pod którymi komentarze pojawiają się nawet prawie rok po publikacji.
Wchodzący z wyszukiwarek to u mnie prawie 3/4 odwiedzających, więc nie będę ich pozbawiał możliwości skomentowania czegoś co ich zainteresuje. Przecierpię te kilka dodatkowych kliknięć tygodniowo :)
To działa :)
działa:P
test
No to jest plugin (niestety, jeden pliczek WordPressa i tak trzeba ręcznie modyfikować, ale to prosta zmianka jest) do mojej anty-spamowej metody. Zapraszam.
gshegosh: Z przyjemnością potestuję w najbliższej wolnej chwili. Dzięki!
Dziala