WordPress Anti Spam Snippet

Die meisten Kommentare, die ich in meinem Blog bekomme sind SPAM!
Und zwar meist – nein immer – englischsprachig. Und ich wette die Spamer und Spambots können kein deutsch.
Also hab ich ein WordPress Mini Anti Spam System geschrieben. Das ganze ist nur ein paar Zeilen groß, dürfte aber die meisten Spamer fern halten.

Vielleicht brauchts ja sonst noch jemand, es ist eine Sache von ein paar Minuten und man braucht keinen API Key oder sonstiges. Hier eine Anleitung, was man machen muss, um vor englischsprachigem Spam verschont zu bleiben.

Die Idee ist folgende: Unter dem Kommentar-Formular wird das Bild einer Frucht angezeigt. Darunter ist ein weiteres Input-Feld, in das der Kommentator den Namen der Frucht schreiben muss. Und zwar auf deutsch.

1. Spambots sind zu blöd Früchte zu erkennen
2. die meisten Spambots können kein deutsch
3. englisch kommentierende Spamer können die Früchte erkennen, können aber kein deutsch (zumindest die meisten). Ausser sie schauen in ein Wörterbuch, aber ich glaube da suchen sie sich eher den nächsten Blog.

Naja, ich muss wohl erstmal ne Zeitlang warten, aber ich hab so das Gefühl, dass jetzt erstmal Schluss ist mit dem massenhaften Spam.

Schritt 1 – Speichert euch die ganzen Bilder unter den gleichen Namen wie ich sie habe auf den Rechner (1.jpg – 8.jpg)

fruit1
fruit2
fruit3
fruit4
fruit5
fruit6
fruit7
fruit8

2. Schritt
Erstellt auf eurem Webspace einen Ordner namens “fruits”, und zwar im untersten Verzeichnis. Ladet dort per ftp die Bilder hoch. (die genaus heissen müssen, wie bei mir)

3. Schritt
Öffnet mit einem Editor die Datei comment-template.php im wp-includes Ordner (per ftp downloaden).
Sucht die Stelle

<p class="form-submit">

DAVOR fügt ihr diesen Code ein:

<?php
// hacked by mighty marcus / spam protection

$fruit = mt_rand(1, 8);
echo '<p style="font-weight:bold; font-size: 16px; color: #888">';
echo '<img src="http://www.deinedomain.de/fruits/'.$fruit.'.jpg" alt="fruit" title="fruit" /><br />';

echo 'Was ist das?<span style="color:#F00">*</span><br />';
echo '<input type="hidden" name="fruit" value="'.$fruit.'" />';
echo '<input type="text" name="fruit_answer" />';
echo '</p>';
// end hack

?>

Datei speichern und wieder hochladen.

4. Schritt
Holt euch die Datei wp-comments-post.php im untersten Verzeichnis und öffnet sie mit einem Editor.
Sucht die Stelle:

if ( '' == $comment_content )
	wp_die( __('Error: please type a comment.') );

DANACH einfügen:

// hack

if (isset($_POST['fruit_answer']) && $_POST['fruit_answer'] != '') {
$fruit_ary = array('', 'ananas', 'erdbeere', 'pfirsich', 'apfel', 'kirsche', 'banane', 'birne', 'zitrone');
$fruit = $fruit_ary[$_POST['fruit']];
	if ($fruit != strtolower($_POST['fruit_answer']))
	wp_die( __('Fehler: Du müsstest eigentlich wissen, was das für eine Frucht ist!') );
}
else
wp_die( __('Fehler: Sie müssen den Namen der Frucht eintragen!') );
// hack end

Fertig. Die Spambot Macher könnten jetzt zwar einfach den Blogeintrag lesen und ihren Bots beibringen, dass zum Beispiel 1.jpg eine Ananas ist usw… Aber ich schätze nur wegen meinem Blog wird das keiner machen. Check it out!

Wie immer am Ende noch ein paar Keywords, haha. Anti Spam yes Anti Spam. Ein Minimales Anti Spam System für WordPress von mighty.marcus. See ya (in hell) !

UPDATE: Und es funktioniert. Bisher kein einziger Spam-Kommentar!

UPDATE 2 (24. April): Immer noch kein Spam! Haha Loser!

Über mighty.marcus

Ich bin anders.
Dieser Beitrag wurde unter Programmierung, Webdesign abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

fruit
Was ist das?*