Moin!
Um die Website vor Spam-Bots zu schützen sollte man ja zuerst einmal Wissen wie diese arbeiten. Jetzt wäre für mich mal interessant wie die Grundlegende Arbeitsweise eines Bots ist?
Der Bot sucht mit einer Suchmaschine nach Treffern für "Klassische" Bezeichnungen für Formularfelder in Gästebüchern und auf Kontaktseiten.
1. Gegenmaßnahme: Diese mit robots.txt sperren, so dass diese Formulare in Suchmaschinen gar nicht erst auftauchen.
User-agent: *
Disallow: /formular.html
2. Gegenmaßnahme: Formulare erst mit Ajax nachladen oder mit document.write schreiben.
3. Gegenmaßnahme: zufälligen Name des Formularfeldes in eine Session-Variable speichern, beim Rücksenden der Formulardaten dieses auslesen: $message=$_POST[$_SESSION['message_input']]
4. Gegenmaßnahme: Dummy-Feld einbauen und schauen, ob dieses ausgefüllt wurde: Höflich "Danke" sagen und ab mit der IP in die .htaccess.
CSS:
#nachricht_dummy { display:none; }
HTML:
<textarea name="nachricht" id="nachricht_dummy"></textarea>
Der Bot füllt Formulare nicht wirklich aus. Er parst bestenfalls das HTML - und das auf eine sehr primitive Weise (Suche nach Formularfeldern) GET, POST, COOKIE kann auch ein Bot senden, dass kann sogar ein Shellskript mit wget erledigen.
1. Gegenmaßnahme: Keine Kommentare, Gästebucheinträge ohne Freigabe.
2. Primitive Spamfilter helfen. Einer der Bots trägt zum Beispiel immer:
<a href="http://..."> [url]http://...[/url] http://... ein.
Das ist leicht zu erkennen und die betreffende ip wandert auch gleich in die .htaccess
Diese Maßnahmen erschlagen den absolut größten Teil des Bot-Spams. Erst wenn Deine Seite auf Grund gigantischer Reichweite für ausgefeiltere Spam-Bots von Interesse ist - diese zu programmieren, instand zu halten (an Abwehr anzupassen) kostet viel Geld, dass auch verdient werden muss - musst Du mehr machen.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix