Gästebuch Spam-Schutz
am 10.09.2006 12:42:53 von Andreas BensenHallo,
was gibt es für Methoden, um sein Gästebuch vor Spam-Bots zu schützen,
ausser dass der Benutzer einen Zahlencode eingeben muß?
Gruß,
Frank
Hallo,
was gibt es für Methoden, um sein Gästebuch vor Spam-Bots zu schützen,
ausser dass der Benutzer einen Zahlencode eingeben muß?
Gruß,
Frank
Frank Degener wrote:
> was gibt es für Methoden, um sein Gästebuch vor Spam-Bots zu schützen,
> ausser dass der Benutzer einen Zahlencode eingeben muß?
Da gibt es viele Wege. Eine z.B.:
Registrier in der Session einen Wert. z.B.:
$_SESSION['dummy'] = sha1('##'.microtime());
Weisen den Wert einem versteckten Formularfeld z.B. mit dem Namen
'dummy' als Wert zu.
Prüfe beim Auswerten der gesendeten Formulardaten ob der Wert des
Hidden-Feldes mit der registrierten Session-Variable übereinstimmt.
Wenn nicht verwerfe den Request.
Bsp. (nur zur Veranschaulichung):
if (!isset($_SESSION['dummy']))
$_SESSION['dummy'] = sha1('##'.microtime());
if (isset($POST) /*noch andere Felder auf existenz checken*/) {
if (isset($_POST['dummy']) &&
($_POST['dummy']==$_SESSION['dummy')) {
// Zulässiger Postrequest liegt vor.
// Hier der Code zum Registrieren der Requestdaten
}
}
$_SESSION['dummy'] = sha1('##'.microtime());
Das bedeutet das ein Request nur dann akzeptiert wird wenn Cockies
aktiviert sind und wenn der übergebene Wert mit dem vorgegebenen
übereinstimmt. Da die gegenstelle den Inhalt des Notwendigen Wertes
nicht kennen kann und sich dieser bei jedem Request ändert stellts einen
relativ guten Schutz dar.
Manchmal reich es aber bereits ein verborgenes Feld 2x mit
unterschiedlichen Werten zu definieren (erst falscher Wert das
korrekter). Aber das schützt halt nur vor Bots und nicht vor mutwilliger
manueller Eingabe.
MfG, Ulf
Frank Degener schrieb:
> Hallo,
>
> was gibt es für Methoden, um sein Gästebuch vor Spam-Bots zu schützen,
> ausser dass der Benutzer einen Zahlencode eingeben muß?
>
> Gruß,
> Frank
Ich hab mir da n bissel ein "komplizierteres" System ausgedacht, das
darauf basiert, dass der Spambot sich merkt, wie die Felder heißen. Kurz
erklärt funktioniert das (allerdings nur mit ner PHP-Ver die die
$_XYZ-Variablen kennt) so:
Zuerst wird ein Passwort zufallsgeneriert, und zusammen mit dem
TimeStamp in einer Datenbank gespeichert.
Im Formular werden dann die IDs der INPUTs per md5("ID".$sPassword);
verschlüsselt, der TimeStamp wird plain mitgeschickt.
Beim Auswerten der Daten hol ich mir dann das Passwort per TimeStamp
wieder aus meiner Datenbank und hol mir meine inputs per
$_POST[md5("ID".$sPassword)]
-- funktioniert eigentlich ganz gut (seitdem kein einziger Spampost,
vorher ca. 80 pro Tag), ich hoff nur, dass das System nicht zu anfällig
wird, wenns zu viele Leute benutzen...
Frank Degener schrieb:
> was gibt es für Methoden, um sein Gästebuch vor Spam-Bots zu schützen,
> ausser dass der Benutzer einen Zahlencode eingeben muß?
Neben den Vorschlag von Ulf sollte auch noch der Einsatz eines Bayeschen
Filter erwähnt werden.
Siehe auch:
http://de.wikipedia.org/wiki/Bayes-Filter
Gruß,
Torsten
Frank Degener
> was gibt es für Methoden, um sein Gästebuch vor Spam-Bots zu schützen,
> ausser dass der Benutzer einen Zahlencode eingeben muß?
Es gibt ein paar dynamische Blacklisten für Webspam:
Dann noch eine lokale Blacklist mit den einschlägigen Stichwörtern und
man kann das Problem einigermaßen unter Kontrolle halten.
bye, Dirk
--
http://spam.tinyweb.net/