Moinsen. Der folgende Beitrag hat zwar nichts mit Apple zu tun, aber viele von euch führen vielleicht ebenfalls ein Blog. Daher haben der Ad und ich uns gedacht, dass es vielleicht Sinn macht, einige meiner alten Tutorials hier einzubinden. Fangen wir doch mal mit dem Spamschutz an. Weitere Tutorials folgen Stück für Stück.
Achtung: Ich bin nicht dafür verantwortlich, wenn nachher irgend etwas auf eurem System nicht mehr läuft. Das Basteln geschieht auf eigene Gefahr!
Teil 1:
Der Thorsten von puzich.com erläutert uns WordPress’lern eine sehr einfach Methode zur Spamabwehr (die auch für andere Systeme geeignet ist).
Wie ich das verstanden habe, basiert die Methode auf der Tatsache, dass…
a) Bots so doof sind und alles ausfüllen und
b) Bots kein CSS beherrschen.
Daher baut man in die comments.php ein weiteres Eingabe-Feld ein, das man per CSS versteckt. Am besten gibt man dem Textfeld als name=”author”, damit der Bot garantiert darauf anspringt. Die anderen Inputfelder passen wird in Teil 2 an.
<input class="feld" type="text" name="author" size="25" style="display:none;" />
In der wp-comments-post.php fügen wir nach
$comment_content = trim($_POST['comment']);
noch
if ( !empty($_POST['author'])) { wp_die( __('Sorry, but it seems you are a spam bot.') ); };
ein.
Vom Prinzip her wird geschaut, ob das versteckte Feld ausgefüllt wurde. Wenn ja, dann kann man sicher sein, dass es sich um einen Bot handelt.
Teil 2
Mit der Methode sind immer noch ein bis zwei Spams durchgerutscht. Ich habe den Verdacht, dass die Bot nach den “name=” der Inputfelder schauen. Daher trickse ich sie jetzt aus. Das versteckte Inputfeld, welches nur der Bot erkennt, heißt “author” und den richtigen Feldern hab ich einfach andere Namen gegeben. Das Feld für den Autor heißt nicht mehr author, sondern bei mir jetzt “heinz“. Auch den restlichen Feldern habe ich andere Namen gegeben. “wilma” ist email, “willy” ist url und “johnny” ist comment.
Nun muss man noch die wp-comment-post.php anpassen, so dass WordPress auch mit den neuen Namen umgehen kann.
$comment_author = trim(strip_tags($_POST['author']));
$comment_author_email = trim($_POST['email']);
$comment_author_url = trim($_POST['url']);
$comment_content = trim($_POST['comment']);
…sieht bei mir nun folgendermaßen aus…
$comment_author = trim(strip_tags($_POST['heinz']));
$comment_author_email = trim($_POST['wilma']);
$comment_author_url = trim($_POST['willy']);
$comment_content = trim($_POST['johnny']);
Scheinbar klappt das wunderbar, denn bis heute ist kein einziger Kommentar-Spam mehr aufgetaucht.
Ich danke Thorsten für diese klasse Idee.
Desweiteren bietet Thorsten noch ein System an, welches mit Sessions und Hash-Werten arbeitet. WordPress ließ sich aber leider nicht dazu überreden, damit zu arbeiten. Wer jedoch ein WordPress-Crack ist und sich auch mit der Entwicklung von Plugins auskennt, sollte sich das auf jeden Fall mal anschauen. Das würde dann schon der Burner werden. Zusätzllich kann man Trackback-Spam mit dem Simple Trackback Validation Plugin abwehren. So wird Akismet dann gänzlich arbeitslos.

{ 30 Kommentare… lese sie unten oder schreibe selbst einen }
Hm, wollt ihr die nicht einfach integrieren, so wie das damals mit den Beiträgen von ad geschehen ist?
Ansonsten müssen alle, die dein Blog schon abonniert hatten, alles “neue” wegklicken. Alternativ kann man die Beiträge ja auch konsistent kennzeichnen.
Nö. Ich schreib nur noch einen, in dem ich alles für Wordpress mal zusammen fasse. So viel war das ja auch nicht. Integrieren würd ich nicht so gerne machen
Eine weitaus bessere Methode gegen Spam wäre es, eine Frage einzubauen, die niemals ein Spambot “ermitteln” oder erraten kann.
So zum Beispiel:
Der 2. Buchstabe im Namen “LUTZ” lautet:
Wenn man ein “u” eingibt, ist alles ok. Wenn nicht – war der User betrunken oder es war ein Spambot.
Das ist dann aber nicht so schön für den Leser. Ich will ja gerade all diese Matheaufgaben, Bilder raten, etc verhindern.
Gut!
Schon, aber das ist noch eine sehr einfache Aufgabe. Auch das wäre sicher:
“Wie heißt diese Website” … richtig, Apfelquak.
Die Variante mit dem via CSS unsichtbaren Inputfeld mag bequem sein, wird aber langsam bereits durch Bots herausgehebelt und ist alles andere als semantisch und sinnvoll (aus der Sicht eines Webentwicklers *g*).
Ich darf anmerken, dass diese Methode der Spamabwehr seit dem Relaunch von AQ erfolgreich läuft.
Bis zu dem Einsatz hatten wir ca. 19000 Spams gezählt. Momentan sind es 19231. Die Differenz besteht zu 100% aus Trackback-Spam, den Akismet rausgefischt hat. Kommentar-Spam ist seitdem keiner mehr aufgetaucht!
das ist ja echt cool – wieso baut wordpress.org das nicht ein? man kann ja feldnamen auch generieren!
@ dolce
Würde zu Problemen beim automatischen Ausfüllen führen. Gut, kann man überleben wenn man jedes mal wieder seinen Namen, seine Adresse und das ganze Zeug eingeben muß aber ärgerlich wäre es.
Der Mensch ist faul, das beinhaltet tippfaul.
Und was ist mit Leuten, die ohne CSS surfen, z.B. Menschen die fast blind sind und deshalb auf reine Textansicht angewiesen sind oder einen Speedreader? Die dürfen hier nicht posten? Oder habe ich was überlesen… ?
Richtig, die dürfen nicht posten….
Ne Quatsch
du kannst doch einfach ein einen verstecken Text einbauen. “Achtung dieses Feld nicht ausfüllen!” einfach in ein Span mit dem Attribut “display:none;” packen. Fertig.
Irgendwas müsst ihr auch noch selber machen
Da bei bei Wordpress eh alles in Cookies gespeichert wird und man so nur einmal die Daten eingeben muss, dürfte ein kurzes tippen kein Problem sein.
Dann wäre es ja wieder normal und die Spambots könnten sich auf die Situation einstellen. Der Versuch würde scheitern.
Ohne jetzt hier den großen Exkurs über Zugänglichkeit und Barrierearmut abfackeln zu wollen: Screenreader sind durchaus in der Lage, CSS zu erkennen und korrekt zu interpretieren. Außerdem benötigen Personen mit Sehschwächen nicht zwingend kein Stylesheet, sondern formatieren sich beispielsweise bestimmte Bereiche der Seite mit einem User-Stylesheet so, wie es für sie am besten ist.
Aber spätestens beim nächsten CSS-Naked-Day fällt es auf, keine Frage.
Sehr klasse Tutorial! *twothumbsup*
Für Benutzer, die nicht so “skilled” sind, kann ich “TanTan Noodles Simple Spam Filter empfehlen” (hier beschrieben: http://www.franztoo.de/?p=265 ). Mein Comment Spam ist ebenfalls quasi auf Null damit gesunken. Nach der oben genannten Beschreibung, sind noch weitere Verbesserungen am Plugin vorgenommen worden.
Bei mir läuft ganz einfach das bereits vorinstallierte Akismet (http://akismet.com/) und filtert ganz wunderbar alles raus, was nicht reingehört. Da brauchts doch gar keine komplizierten Umbauten, oder?
Kommt darauf an, wie hoch dein generelles Spamaufkommen ist. Je größer, desto höher ist natürlich die Wahrscheinlichkeit, dass auch mal welche durchschlüpfen. Ich hatte eine Zeit lang auf admartinator.de ein Spam-Aufkommen von 2000-3000 Spams pro Monat. Da waren dann schon mal so 1-2% dabei, die durchgeflutscht sind.
Bei Askimet sieht gibt es aber immer wieder “false positives”, man muss sich also durch den Müll wühlen, wenn man seine Kommentatoren mag.
Bei der oben beschriebenen Methode und bei dem TanTan Filter, werden Askimet Spams sofort abgewiesen, sie landen also erst gar nicht dort.
Stichwort “False Positives”: Das, was bei mir jetzt im Akismet-Filer liegen bleibt, ist zu 99% False Positive. Die restlichen 1% sind Spammer, die zu Fuß durch die Blogs pilgern.
Danke! Ich habe mir diese Ausführung gespeichert!
Gleiches Problem wie AD:
Aus irgendeinem Grund ist ein Etiketten-Verkäufer der Meinung in meinem Comments-Bereich Werbung machen zu müssen!
kennt eigentlich jemand ein Tool mit dem man seinen Wordpressblog nach toten links absuchen kann?
z.B. jetzt nach den toten Nasendackel links?
“Integrity” das kleine Programm checkt alle Links der angegebene Webseite und ist Freeware!
Ich bis dato noch nicht, aber Google weiß alles:
http://w-shadow.com/blog/2007/08/05/broken-link-checker-for-wordpress/
http://www.guennersen.de/2007/04/05/integrity-fehlerhafte-links-im-blog-finden/
lol danke!
dachte auch google findet was für mich aber irgendwie hab ich wohl falsch gesucht.
gleich mal testen.
Wieso verstehen Bots kein CSS?
Spätestens nach den “Tricks”, die immer veröffentlicht werden, wird auch der dümmste Bot es verstehen.
Im übrigen sind die oben veröffentlichten Methoden schon Jahre alt!
Und wenn schon – sie halten mein Blog seit Monaten spamfrei.
Naja. Auch wenn’s schon 10 Jahre alt ist, die schnallen das trotzdem nicht. Diese Seite ist der lebende Beweis. Und bei den Besucherzahlen, die wir hier haben, sollte auch sämtliche Blogs auf uns aufmerksam werden.
Vom Prinzip her stören, glaub ich, auch einfach die veränderten names am meisten.
Bots sind nun mal per se doof, schlecht programmiert oder beides. Außerdem bietet CSS dank Kaskade diverse Möglichkeiten, ein Element auszublenden. Die Bots müssten also eigentlich einen kompletten CSS-Parser mit sich rumschleppen.
{ 16 Trackbacks }