Captcha wird ausgehebelt

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Captcha wird ausgehebelt

    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:

    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');
      }

    Bitte um Erleuchtung

  • #2
    PHP-Code:
    error_reporting(E_ALL); 
    ?!

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Ist natürlich eingeschaltet - permanent.
      Ich bekomme keine Fehler.

      Kommentar


      • #4
        Der selbe Fehler wie in diversen anderen Captcha-Threads:

        PHP-Code:
        if($_POST['gb_captcha'] != $_SESSION['captcha']) 
        Wenn kein Captcha geladen wurde (tun bots nämlich nur wenn es unbedingt nötig ist), dann existiert auch kein captcha-code in der session, wenn ich nun auch keinen captcha-code im Formular eingebe, läuft alles wie geschmiert.

        Gefahr erkannt, gefahr gebannt. Viel spaß beim beheben.

        Kommentar


        • #5
          Ist natürlich eingeschaltet - permanent.
          Ich bekomme keine Fehler.
          Außer, wenn du mal die Bilderanzeige im Browser ausschaltest.

          Kommentar


          • #6
            Ok, danke, so konnte ich es nachvollziehen.
            Hab selber auch diesen Test gemacht, habe aber dummerweise die Bilderdarstellung erst abgeschaltet, nachdem ich die Seite schon einmal aufgerufen hatte - also schon ein Captchacode in der Session gespeichert war.

            Kommentar

            Lädt...
            X