Spam ist lästig, eine moderne Seuche, und nicht so einfach zu bekämpfen. Jeder ist daran interessiert sein E-Mailfach oder seine Blog-Kommentare mit Filtern sauber zu halten. Es gibt aber immer wieder neue Tricks der Spammer um gängige Methoden zu überwinden. Die Frage ist also: Was tut ihr gegen Kommentar-Spam auf Euren WordPress-Blogs?
Daher habe ich mir ausnahmseweise mal medizinische Hilfe über die Suchmaschinen erhofft. Eine einfache bekannte Methode ist das Integrieren eines unsichtbaren Kommentarfeldes in den Blog. Normale Besucher sehen dieses Feld nicht und füllen es daher auch nicht aus. Maschinen sind ja bekanntlich dumm und spammen auch in dieses Feld hinein. Bingo, hier erfolgt die Unterscheidung: Mensch-Spam.
Und jetzt: Informatiker, SEOler und WordPress-Experten macht mich fertig, aber ich habe nichts Verwertbares darüber im Netz gefunden. Also hat Monsterdoc selbst rumgewerkelt. Herausgekommen ist ein Spamfilter gegen maschinellen Spam, und hey, er funktioniert und ich muss keine Rechenaufgaben, keine zerpflückten Fliegen und keine WordPress-Plugins benutzen.
Allerdings ist ein bisschen Grundwissen in PHP und WordPress notwendig. Umsetzung erfolgt daher natürlich auf eigene Gefahr. Los gehts.
Erzeugen eines Kommentarfeldes:
<div class="monsterspam">
<p><input type="text" name="filter" id="filter" value="<?php echo $comment_filter; ?>" size="27" tabindex="1" />
<label for="filter">Feld bitte nicht ausfüllen (Filter):</label></p>
</div>
<p><input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" size="27" tabindex="2" />
<label for="author"><small>Name <?php if ($req) _e('(required)'); ?></small></label></p>
Unsichtbarmachen des Kommentarfeldes:
.monsterspam {
position: absolute;
top: -9999px;
left: -9999px;
width: 0px;
height: 0px;
display: inline;
}
Wenn unsichtbares Feld beschrieben wird, gibt WordPress eine Fehlermeldung aus:
$comment_author = ( isset($_POST['author']) ) ? trim(strip_tags($_POST['author'])) : null;
$comment_author_email = ( isset($_POST['email']) ) ? trim($_POST['email']) : null;
$comment_author_url = ( isset($_POST['url']) ) ? trim($_POST['url']) : null;
$comment_content = ( isset($_POST['comment']) ) ? trim($_POST['comment']) : null;
$comment_filter = ( isset($_POST['filter']) ) ? trim($_POST['filter']) : null;
und
if ( '' == $comment_content )
wp_die( __('Error: please type a comment.') );
if ( strlen($comment_filter) >0 )
wp_die( __('Error: Monsterdoc meint, du bist ein Spammer !!!') );
Maschineller Spam kommt bei mir damit zu 99% nicht mehr durch und gegen menschlichen Spam kann man halt nichts erfinden … oder?
UPDATE am 05.12.2009:
Der Filter hat nur 2 Monate sinnvoll genutzt. Dann wurden erneute harte Spam-Attacken gefahren. Jetzt kommt also mein zweiter Streich:
Die Datei wp-comments-post.php ist bekannt in Spammerkreisen, daher einfach per FTP im Hauptverzeichnis umbennen, z.B. in wp-monsterdoc-post.php. Im genutzten Theme muss dann einfach in der Datei comments.php dieser Name ebenfalls ersetzt werden. Bingo! Seit 3 Tagen nur noch menschlicher Spam.
« Krankheiten 2019 – Hämorrhagisches Fieber in Deutschland? »
Entschuldige, das Kommentarformular ist zurzeit geschlossen.
Design von Perun modifiziert vom Chefarzt | expertenteam | impressum
Im Prinzip genial – aber vermutlich nicht barrierefrei, denn automatische Seiten-Vorleseprogramme z.B. für Blinde dürften auch drauf reinfallen. (Immerhin, du hast das unsichtbare Kommentarfeld entsprechend gelabelt, Lesen könnte also Helfen
)
Kommentar: Benedicta
(282) – 05. Oktober 2009 @ 00:25
Die Idee hatte ich auch schon mal! Bissl blöd, jetzt zu erfahren, dass das offenbar schon bekannt ist.
Ich kenne jetzt die Funktionen von WordPress nicht, aber ich sage einfach mal: Wenn es funktioniert, ist es okay. Das gibt n Bienchen!
Ja, barrierefrei ist es nicht, aber hey: Captchas sind wahrscheinlich noch viel schlimmer.
Ich persönlich habe gute Erfahrungen mit Akismet gemacht, habe aber auch kaum Besucher.
Wer Captchas will, dem empfehle ich http://recaptcha.net
Kommentar: NK
(57) – 05. Oktober 2009 @ 02:13
Hm, nette Idee, muss ich mir auch mal überlegen.
Allerdings könnte das Verstecken des Feldes bzw Verschieben in einen nicht sichtbaren Bereich von manchen Suchmaschinen als Täuschungsversuch ausgelegt werden. Das war zumindest mal so, dass sie auf versteckten Content sehr allergisch reagiert haben und dieser im schlimmsten Fall zum Ausschluss aus dem Index führte. Ob das immer noch so ist kann ich leider so auf die Schnelle nicht sagen.
Kommentar: Chris
(97) – 05. Oktober 2009 @ 08:06
Screenreader lesen den Quelltext, also kein grafisches Gedönz. Schaltet mal Euer CSS im Browser ab, dann seht ihr das versteckte Filterfeld. Das müsste dann mit meiner CSS-Verschiebemethode auch vom Screenreader vorgelesen werden. (ich habe leider keinen!) Ist dann ein bisschen lästig, müsste aber barrierefrei sein. Wichtig ist halt ein korrektes Markup der Inhalte.
Die Verschiebemethoden per CSS werden ja auch beispielsweise zum Ersetzen von H1-Überschriften mit Bildchen angewendet. Das ist sicher kein versteckter Content.
Kommentar: chefarzt
– 05. Oktober 2009 @ 13:54
Das sind Probleme von Promi-Websites. Ich kann manchmal Spam von echten Kommentaren nicht unterschieden
Kommentar: drgeldgier
(82) – 05. Oktober 2009 @ 14:02
Ahja, das sieht genau so aus, wie ich’s mir dachte (ich hatte mir den Quelltext direkt angeschaut).
Letztlich isses dasselbe wie ne Rechenaufgabe oder ein Captcha: ein Intelligenztest – Wer schreibt in ein Feld, das mit “hier bitte nicht schreiben” beschritfet ist?
(Natürlich ist Lesen immer Glückssache. Bei uns klebt seit einiger Zeit ein Zettel an der Tür “Bitte von Hand öffnen und schließen”, weil die Automatik kaputt ist. Rate mal – genau, die Tür steht immer sperrangelweit auf.)
Kommentar: Benedicta
(282) – 05. Oktober 2009 @ 17:09
Da gibt/gab es doch mal ein Plugin, das mit derselben Masche gearbeitet hat. Der Name ist mir leider entfallen.
Ich lass den Spam einfach von WordPress selbst filtern, so viel ist das nicht (10 pro Tag vielleicht). Kommentare von bisher unbekannten Lesern stehen in jedem Fall erstmal zum Review aus, dann kann man immer noch selbst entscheiden.
Manchmal ist es nicht einfach, Spam von echten Kommentaren zu unterscheiden, aber dann hilft in jedem Fall der beigefügte Link weiter.
Kommentar: Matthias
(109) – 05. Oktober 2009 @ 19:05
@drgeldgier: Promi-Website? Nun ja … Das ist dann wohl menschlicher Spam, den kann man damit natürlich nicht ausfiltern.
@benedicta: Vielleicht einen Versuch wert: Bitte nächsten Artikel auf keinen Fall kommentieren …
@matthias: Ich hatte teilweise 10 pro Stunde, das war dann nicht mehr lustig. Da musste was passieren. Wenn Du den beigefügten Link anwählst, hat der Spammer schon einen Click mehr, bäh.
Kommentar: chefarzt
– 05. Oktober 2009 @ 20:00
Püh. Wenn ich hier nicht erwünscht bin, geh ich halt.
Kommentar: Benedicta
(282) – 05. Oktober 2009 @ 22:56
@benedicta: Die Aussage sollte für alle Kommentierer gelten, nicht speziell für benedicta. (Der Trick dabei ist natürlich, dass gerade deswegen besonders viel kommentiert wird, weil es eben verboten ist.) Okay?
Kommentar: chefarzt
– 05. Oktober 2009 @ 23:22
Schwarze Pädagogik, Chefarzt?
Sorry, da muss ich dich enttäuschen – das hat bei mir noch nie funktioniert.
Ich bin doch Informatiker – mit mir muss man Klartext reden, gaaanz laaangsam und deutlich
Kommentar: Benedicta
(282) – 05. Oktober 2009 @ 23:44
Okay, dann bitte jetzt den neuesten Artikel kommentieren …
Kommentar: chefarzt
– 05. Oktober 2009 @ 23:52
Hallo
vieleicht ist ja http://antispambee.de/ das richtige für dich
Gruß
Kommentar: Mkuh
(1) – 06. Oktober 2009 @ 12:28
@mkuh: Die Biene hört sich gut an. Sie geht noch einen Schritt weiter.
Kommentar: chefarzt
– 06. Oktober 2009 @ 18:55
hallo,
bei der klasse .monsterspam reicht einfach ein .monsterspam{display:none}
Kommentar: gesunderblick
(1) – 09. Oktober 2009 @ 21:56
@gesunderblick: stimmt
Kommentar: chefarzt
– 10. Oktober 2009 @ 00:23
UPDATE des Monsterdoc-Spamfilters
Kommentar: chefarzt
– 05. Dezember 2009 @ 21:25