Spam mit Kommentarfeld verhindern

abgelegt am 04. September 2008 unter Scripting | 2 Kommentar(e) |

Es gibt grundsätzlich zwei Möglichkeiten mit Kommentar-Spam umzugehen. Zum einen man filtert den Spam aus den Kommentaren und zum anderen man lässt erst gar kein Spam aufkommen. Ich habe mich schon länger für die zweite Möglichkeit entschieden. Seit Monaten habe ich als Schikane für alle Spammer eine kleine Matheaufgabe eingebaut. Im Web spricht man jetzt von einer zweiten Möglichkeit.

Diese Variante geht von der Theorie aus, dass Spambots immer alle Kommentarfelder ausfüllen und dass solche Bots mit CSS nicht umgehen können. Also was ist einfacher als diesen Spammern eine Falle mit Hilfe eines speziellen Kommentarfeldes zu stellen. Der Trick dabei ist, dass dieses Feld NICHT ausgefüllt werden darf. Damit die Weblogbesucher dieses Feld nun nicht ausfüllen wird es mittels CSS versteckt. Ich habe mich dabei für display: none; entschieden.

<input style="display: none;" name="address" type="text" size="40" maxlength="30" value="" />

Was jetzt bleibt ist das Überprüfen, ob dieses Feld nun wirklich leer ist. Diese PHP-Zeilen sind nichts besonderes. Im Web findet man sie an vielen Ecken. Ich habe für meinen Teil diese Zeilen erweitert. Mein PHP-Schnipsel überprüft zusätzlich ob das Feld auch vorhanden ist. Dieser Teil fehlt bei Anderen und könnte von den Spammern ausgenutzt werden.

if (array_key_exists('address', $_POST)) {
  if (!empty($_POST['address'])) {
    header('HTTP/1.1 403 Forbidden');
    exit;
  }
} else {
  header('HTTP/1.1 403 Forbidden');
  exit;
}

PS: Die Erstveröffentlichung dieses Artikel war am 12.07.2007. Der wiederveröffentlichte Artikel setzt damit meine Reihe alter Artikel fort.

Kommentare

Gravatar kubi am Donnerstag, den 04.09.08 um 14:08

Genau dafür gibt es auch ein nettes Plugin ;-) http://wordpress.org/extend/plugins/yawasp/


Gravatar Horst Scheuer am Donnerstag, den 04.09.08 um 14:09

@kubi: Danke für den Tipp. Da ich hier auf ein Eigenbau-CMS setze, habe ich mir die Funktion selbst zusammengebaut.

Artikel kommentieren

Dein erster Kommentar auf diesem Blog ist nicht sofort sichtbar. Um Spam zu vermeiden werden neue Kommentatoren moderiert. Die Freischaltung kann mehrere Stunden oder Tage in Anspruch nehmen.
Mögliche Formatierungen: [b]fett[/b], [i]kursiv[/i], [u]unterstrichen[/u], [url=Link]Beschreibung[/url]