Hallo zusammen,
nach dem kürzlichen Relaunch unserer Seite habe ich massives Spamaufkommen (ca. 10 Posts am Tag) im Gästebuch.
Vor dem Relaunch hatte ich (fast) nie Spam. Am Captcha habe ich aber nichts geändert. Hier die Eingabe ins Gästebuch
Ich habe also mal geloggt, was für Captchas vorgegeben sind und was daraufhin eingegeben wurde. Ergebnis: 90% ist der numerische Wert des generierten Captchas 0 und die Eingabe ins Formular auch 0.
Wie kann das sein? Ich speichere den Wert des Captchas in der Sessions, welche wiederum über Cookies gespeichert wird. Was passiert wenn der User keine Cookies erlaubt?
Dann hatte ich heute zwei Spameinträge mit gültigem Captcha und der entsprechenden Eingabe. Wie kann das sein? Gibt es wirklich Idioten die per Hand irgendwelche Gästebücher zuspammen? So bedeutend ist unsere Seite nicht!
Hier ein Codeauszug aus der Verarbeitung des Formulars:
Bitte um Erleuchtung
nach dem kürzlichen Relaunch unserer Seite habe ich massives Spamaufkommen (ca. 10 Posts am Tag) im Gästebuch.
Vor dem Relaunch hatte ich (fast) nie Spam. Am Captcha habe ich aber nichts geändert. Hier die Eingabe ins Gästebuch
Ich habe also mal geloggt, was für Captchas vorgegeben sind und was daraufhin eingegeben wurde. Ergebnis: 90% ist der numerische Wert des generierten Captchas 0 und die Eingabe ins Formular auch 0.
Wie kann das sein? Ich speichere den Wert des Captchas in der Sessions, welche wiederum über Cookies gespeichert wird. Was passiert wenn der User keine Cookies erlaubt?
Dann hatte ich heute zwei Spameinträge mit gültigem Captcha und der entsprechenden Eingabe. Wie kann das sein? Gibt es wirklich Idioten die per Hand irgendwelche Gästebücher zuspammen? So bedeutend ist unsere Seite nicht!
Hier ein Codeauszug aus der Verarbeitung des Formulars:
PHP-Code:
if (isset($_POST['gbentry_content']))
{
// Prüfen ob der Captcha-Code richtig eingegeben wurde
if($_POST['gb_captcha'] != $_SESSION['captcha'])
{
// Eingegebene Formulardaten über Session übergeben und Fehlermeldung anzeigen
foreach ($_POST as $key => $value)
$_SESSION['formdata_guestbook'][$key] = $value;
$smarty->assign('gb_err_msg', 'Der Sicherheitscode wurde nicht korrekt eingegeben!!');
}
else if (!empty($_POST['gb_name']) and !empty($_POST['gb_email']) and !empty($_POST['gbentry_content']))
{
// Eintrag in die Datenbank übernehmen
$prep = array('gb_name' => $_POST['gb_name'],
'gb_email' => $_POST['gb_email'],
'gb_homepage' => $_POST['gb_homepage'],
'gbentry_content' => $_POST['gbentry_content']);
prepFQ($prep);
$query = "INSERT INTO
tr_guestbook
(ip, gbname, email, homepage, content, entry_date, comment, comment_date, comment_user_ref, published)
VALUES('" . $_SERVER['REMOTE_ADDR'] . "', '" . $prep['gb_name'] . "', '" . $prep['gb_email'] . "',
'" . $prep['gb_homepage'] . "', '" . $prep['gbentry_content'] . "', NOW(), '', NOW(), 0, 1)";
db_query($query);
// Feed aktualisieren
updateGuestbookFeed();
// Loggen, für Spamanalyse etc.
$log = sprintf("IP: %s\nCaptch: %d\nCaptcha entered: %d", $_SERVER['REMOTE_ADDR'], $_SESSION['captcha'], $_POST['gb_captcha']);
DebugTrace($log);
// Umleiten auf Anzeige des Gästebuchs
redirectRelPath('./index.php?a=guestbook');
}
}
Kommentar