Der Admartinator und der Christoph wollen von mir ein Tutorial haben, wie man den Kommentarspam sich vom Leib halten kann. Bei den beiden ist / war es nötig, eine kleine, simple Matheaufgabe zu lösen, wenn man seinen Kommentar abgeben wollte. Hintergrund ist der, daß Spambots fleissig Formulare ausfüllen können, aber den Zusammenhang nicht erkennen, was genau in diese Formulare soll. Daher wird der Kommentar nur angenommen, wenn die Aufgabe richtig gelöst wurde. Dies hat aber den Nachteil, daß der Kommentator an diese Methode gewöhnen muß und dadurch evtl. überfordert sein kann (ja, Kommentatoren können auch dumm sein – fast wie Spambots 😉 )
Ich möchte hier eine sehr simple Methode beschreiben, wie bei mir Spam-Kommentare im Blog erkannt werden. Am Ende ergibt dies kein fertiges WordPress-Plugin, oder eine Anleitung wie man so ein Plugin für seinen Blog coded, sondern es soll mehr ein Fingerzeig sein, wie man die (momentanen) Schwächen des Spambots zu seinem Vorteil ausnutzen kann.
Wie weiter oben schon angedeutet, sind Spambots dumm wie Brot – eigentlich noch dümmer. Deren einziger Sinn und Zweck ist es, in deinem Blog Kommentare zu hinterlassen, wie gefüllt sind mit Links zu irgendwelchen Webseiten, die Viagra oder sonstiges verkaufen. Findet also dieser Spambot eine Möglichkeit einen Kommentar zu hinterlassen, dann macht der das auch in aller Gründlichkeit, indem er alle vorhandenen Felder ausfüllt, wie z. B. Name, eMail-Adresse, Webseite und auch einen ausgiebigen Kommentar gibt er ab.
Na, aufgepasst? Er füllt alle Felder aus! Alle, die er findet. Nachteil des Spambots ist, was unser Vorteil sein kann, daß er –
soweit ich weiß – kein CSS kann. Bei mir ist es so, daß bei den Kommentaren ein weiteres Feld vorhanden ist, daß der normale, lebendige Kommentator nicht sieht, aber der Spambot fleissig ausfüllt.
<input class=“feld“ type=“text“ name=“megatext“ size=“25″ style=“display:none;“ />
Sobald der Kommentar abgegeben und dieses Feld ausgefüllt wurde, kann ich mir ziemlich sicher sein, daß kein Mensch mit graphischen Webbrowser es war, der seine Meinung abgeben wollte. Also kann ich getrost diesen Kommentar verwerfen.
Klingt einfach, oder? Ist es auch, daher die folgt mit etwas Abstand eine weitere Möglichkeit.
UPDATE 10 Minuten später
Dieses Input-Feld muß von dem Skript, welches die Kommentare in die Datenbank speichert, auch geprüft werden. Wenn es einen Inhalt aufweist, dann ist es Spam. Ein simpler Code in PHP wie dieser sollte reichen:
if ( !empty($_POST[‚megatext‘])) {
echo „Ein Spambot;
exit;
}
17 Kommentare » Schreibe einen Kommentar