Spam-Schutz #1: verstecktes Feld im Kontaktformular

Wenn man ein Kontaktformular auf der eigenen Website hat, wird darüber gegebenenfalls Spam versendet. Mit einem simplen Trick kann man das fast gänzlich verhindern.

Das Prinzip von Spam über Kontaktformulare

Bots, bzw. Scripte, die Websites nach Formularen durchforsten fügen meistens in jedes Feld Inhalt ein. Wenn man ein Feld hat, das nicht auszufüllen ist, kann man diese Scripte daran hindern, Spam zu versenden.

Formularbeispiel

Ein Kontaktformular könnte wie folgt aussehen:

  1. <form method="post" action="kontakt.php">
  2. <fieldset>
  3. <legend><label for="name">Name:</label></legend>
  4. <input type="text" name="name" id="name" />
  5. </fieldset>
  6. <fieldset>
  7. <legend><label for="email">E-Mail:</label></legend>
  8. <input type="text" name="email" id="email" />
  9. </fieldset>
  10. <fieldset>
  11. <legend><label for="nachricht">Nachricht:</label></legend>
  12. <textarea rows="20" cols="14" name="nachricht" id="nachricht"></textarea>
  13. </fieldset>
  14. <fieldset class="dau">
  15. <legend><label for="dau_text">Bitte f&uuml;llen Sie das folgende Feld nicht aus:</label></legend>
  16. <input type="text" name="dau" id="dau_text" value="" />
  17. </fieldset>
  18. <input type="submit" value="Absenden" />
  19. </form>

Der wichtige Teil des Formulars ist das fieldset mit der Klasse „dau“. Dieses wird mit CSS versteckt, damit es ein „normaler“ Besucher nicht sieht. Für alle, die CSS nicht aktiviert haben (man denke an Screen-Reader) gibt es den Infotext.

Das CSS muss dementsprechend folgendes enthalten:

  1. .dau { display: none; }

Schlusswort

Im PHP-Script zum Verarbeiten des Kontaktformulars prüft man zunächst, ob $_POST['dau'] leer ist. Wenn dem nicht so ist, handelt es sich mit hoher Wahrscheinlichkeit um einen Bot und keine reale Person. Als Folge kann man eine Fehlermeldung ausgeben oder das Script beenden.

Ich bin schon bei mehreren Sites mit dieser Methode auf 0% Spam gekommen. Manchmal lohnt es natürlich, sich nicht nur auf eine Anti-Spam-Methode zu verlassen.

von mona am 14.12.2009

Tweet this bookmark on delicious

Kommentare

Es sind keine Kommentare zu diesem Artikel vorhanden.