Krop Spam – permanently stop spam in your blog comments

I’ve been tired of comment spam at my blogs (I also use WordPress as a CMS engine so comment spam is even more pain in the ass) so I have created a method to stop it. My method proved to be very efficient and doesn’t need any human interaction (while plugins such as Akismet require blog owner to periodically look through spam folder to check if there aren’t any false positives). I have decided to wrap it up in a plugin.

How does it work?

Well, I’ve noticed that spambots usually directly attack the wp-comments-post.php script that is a WordPress comment processing script. Some (but this is really rare) spammers also try to parse the WWW page and when they find a <form> there, they just blindly fill it in and submit.

If you look into any WordPress template source code, you’ll find that there is a <textarea name=”comment”> somewhere inside. This is a text field for comment content that user enters. Spammers just fill it in with garbage.

What my plugin does is change this <textarea> name to something meaningless for spammers (by default its „komentarzyk” which means „a little comment” in Polish 😉 ). This way, whenever a spammer attacks your wp-comments-post.php directly, he doesn’t fill now required „komentarzyk” field and the comment is not added. Moreover, my plugin leaves the <textarea name=”comment” in the source code, but makes it small (1 row and 1 column only) and tries to hide it through CSS (display: none) so human user will probably not fill that field in. Spammers don’t bother to check textarea’s size nor do they understand CSS, so even when they parse your webpage, they not only fill in required „komentarzyk” field, but also fill in the „comment” field (because they fill in just everything they find). This way they let your blog now they are bad people – if „comment” field is filled in, probably machine filled in your comment form instead of human. So we refuse the comment to be added.

So, how to install the plugin?

1. Download the Krop Spam plugin and unzip it into your WordPress wp-content/plugins directory.
2. Enable the plugin in WordPress admin.
3. Open up wp-comments-post.php in your favorite text editor and find a line that says:

$comment_content = trim($_POST['comment']);  

4. Replace this line with following fragment:

if(trim($_POST['comment']) != '') wp_die( __('Sorry, small comments field should be left empty - it\'s a spam trap.'));
$comment_content = trim($_POST['komentarzyk']);

5. You’re done 🙂

I have tested the plugin with few WordPress themes found on the internet and it works correctly. The only plugin’s requirement is that it needs to have access to any temporary directory (usually /tmp) on the server. It’s almost always possible. If not – talk to you provider.

How efficient is it?

I have been using this method at my Karkonosze page since a few months ago and it decreased the number of spam I receive from 20-30 a week to 1 in 3 months. There’s no guarantee it will work for you though 😉

Nie pytaj człowieka, zapytaj maszyny

  • Przepraszam, którędy dojdę na Plac Hołdu Pruskiego?
  • Skręci Pan w lewo przy Netto – tylko teraz mielone 3,99zł za kilogram – i pójdzie pan prosto do świateł przy McDonaldzie – cheeseburger jedynie 2zł – a dalej w prawo przez Aleję Kwiatową – chryzantemy jedynie 3zł sztuka – i już pan będzie na miejscu. Niech pan koniecznie wstąpi do Brama Cafe, tam jest promocja na kawę latte – jedynie 6,50zł za filiżankę plus herbatnik gratis.

Wyobrażacie sobie kogoś tak odpowiadającego na proste pytanie?

Dlatego nie rozumiem ludzi korzystających z tych śmiesznych automatów, które w miastach są stawiane, co to mają dotykowy ekran i można je zapytać gdzie jest Zamek albo Knajpa. Ja rozumiem – korzystać ze zdobyczy informatyki żeby zaoszczędzić czas w urzędzie albo ominąć kolejkę w banku. To nie tylko jest hi-tech, ale i oszczędza czas i/lub pieniądze. Ale pytanie o drogę? Przecież taki automat na ogół:

  • został „hacknięty” przez jakiegoś małolata i pokazuje „możesz teraz bezpiecznie wyłączyć komputer”
  • jest beznadziejnie nieintuicyjny w obsłudze
  • zasłania 85% planu miasta i informacji reklamami
  • albo co gorsza wyświetla informacje tylko o obiektach, których właściciele zapłacili za reklamę
  • nie pokazuje „tu jesteś” na mapie
  • a w ogóle ilu ludzi potrafi szybko odnaleźć drogę, czytając mapę?

Zapytanie przechodnia „przepraszam, gdzie jest poczta?” na ogół skończy się szybką odpowiedzią co najwyżej drugiej-trzeciej pytanej osoby. Bez reklam. Bez przebijania się przez menu. Bez rozglądania się, gdzie ja właściwie teraz jestem. „Zapytanie” maszyny trwa na ogół wielokrotnie dłużej.

Jeśli więc nie jest tak, że nie znamy ani słowa w języku przechodniów, po co marnujemy czas przy tych automatach? Technika tak, ale nie za wszelką cenę 😉

Są jeszcze wrażliwi ludzie? (+efekt motyla)

Ciekawy temat na osobny wpis: czy takie systemy, jak Google mają świadomość? Są hipotezy, że świadomość pojawia się samoistnie w odpowiednio złożonych systemach. Może Internetowi daleko do złożoności ludzkiego mózgu, ale jakiś cień świadomości samego siebie być może już uzyskał. Zwłaszcza, że o swej świadomości może być przekonana jedynie sama istota świadoma – nie jesteśmy w stanie tego sprawdzić w jakikolwiek sposób z zewnątrz.

Ale to temat na osobny wpis.

Wrażliwe GoogleW tym chcę poruszyć temat: wyszukiwarka internetowa a ludzka wiedza. Niektórzy zaczynają myśleć, że takie np. Google zna całą wiedzę i wszystkie myśli, jakie kiedykolwiek powstały w ludzkich głowach. Jeśli ktoś coś kiedyś pomyślał, to ślad tej myśli znajduje się w Internecie. Np. po co to wszystko? pomyślano aż 53 miliony razy 😉

Czy takie twierdzenie można odwrócić? Czyli jeśli w Google czegoś nie ma, to nikt nigdy tego nie pomyślał? Wpisałem w Google frazę nie ma już wrażliwych ludzi i niczego nie znalazłem. Czy to znaczy, że ze światem nie jest jeszcze tak źle? Że nikt nigdy nie pomyślał o tym, że wrażliwości na świecie już brak? Strasznie to optymistyczne 🙂

Niestety, znalazł się taki jeden Węgorz co opisał sprawę jak wyżej. Mój golb prędzej czy później zostanie zindeksowany i pojawi się pierwszy wynik na Google’u na pytanie o kres ludzi wrażliwych. Tak oto Węgorz zdołował świat.

PS Oczywiście, w Internecie nie ma każdej myśli, a jedynie te opublikowane. Cała nadzieja więc w krajach Trzeciego Świata – bez dostępu do internetu – oraz w tyraniach, gdzie publikować nie wolno. To dzięki myślom ich obywateli Internet nigdy nie zyska ogólnoludzkiej świadomości.

SCSP: kolejny sposób na spam w komentarzach

Od razu zaznaczam, że na pomysł sam nie wpadłem, tylko wykorzystałem pomysł Macieja.

Pomysł na plugin Smart Comment Spam Preventer jest taki, by do formularza komentarzy dodać zwykłe pole tekstowe, dać mu ID chwytliwe dla bota (ja dałem emailconfirm), pustą wartość domyślną i… ukryć przy pomocy CSSa (użyłem visibility: hidden). Użytkownik pola nie zobaczy i nie wypełni, zaś bot prawdopodobnie wypełni wszystkie pola – także to ukryte – głupotami, co automatycznie go zdradzi.

Smart Comment Spam Preventer – pobierz plugin.

W linii

$scspFormFieldName = 'emailconfirm';

można ustawić nazwę dodatkowego pola. Należy dodatkowo dopisać do arkusza stylów swojego szablonu następującą regułkę:

#emailconfirm, #emailconfirmlbl {
    visibility: hidden;
}

Polskie daty w WordPressie

Denerwują mnie daty, które standardowo PHP daje, gdy użyje się „F” w stringu formatowania (np. l, j F Y daje „czwartek, 10 sierpień 2006″). Wg polskiej ortografii powinno być „10 sierpnia”, a nie „10 sierpień”.

WordPress 2.0 (nie wiem czy poprzednie wersje też) ma odpowiednie hooki i można się podpiąć z filtrem pod wywołania the_time() i the_date().

Oto mój plugin, który zamieni w datach „sierpień” na „sierpnia”, „październik” na „października”, itp. Wystarczy zainstalować, włączyć, użyć „F” w stringu formatowania daty, i voila 🙂

Pobierz plugin – wersja 1.0