Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme mit Bots im Kontaktformular

Einklappen

Neue Werbung 2019

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

  • Probleme mit Bots im Kontaktformular

    Liebes Forum,

    ich stehe vor einem Rätsel: ca. ein- bis zweimal im Monat erhalte ich eine komplett leere Email über mein Kontaktformular. Wirklich schlimm ist das nicht, aber eben doch nervig - vor allem, wenn man sich die Ursache nicht erklären kann. Im Folgenden teile ich Euch meinen Code, bestimmt ist dieser in vieler Hinsicht verbesserbar. Worum es mir aber vor allem geht ist: warum ist es möglich, dass die Email leer ist (kein Inhalt und keine Absendermail), wenn ich doch aber überprüfe, ob jene Variablen !empty() sind? (das captcha kann an der Stelle vorerst ignoriert werden - wobei es seinen Zweck wohl auch nicht zu erfüllen scheint.... Ich werde wohl auf google recaptcha wechseln)

    Vielen Dank schon mal

    PHP-Code:
    <?php
    include '../captcha/captcha_check.php';
    $captcha_code$_POST["captcha_code"];
    if (
    captch_check($captcha_code)) {

       
    $name=stripslashes($_POST["name"]);
       
    $email=stripslashes($_POST["email"]);
       
    $subject=stripslashes($_POST["message"]);
       echo(
    $_POST["submit"]);

       if(!empty(
    $name) and !empty($email) and !empty($subject)) {
          
    $to "email@gmail.com";
          
    $from "contact@webseite.de";
          
    $text .= $subject;
          
    $header 'From: '$from "\r\n" .
          
    'Reply-To: '$email "\r\n" .
          
    'X-Mailer: PHP/' phpversion();

             if(
    mail($to"Über webseite.de: von " .$name ." (" $email .")"$text$header)){
                   echo 
    "true";
             }else{
                   echo 
    "ERROR, bitte später erneut versuchen.";
             }
       } else {
          echo 
    "Sie haben das Formular nicht korrekt ausgefüllt.";
       }

    } else{
       echo 
    "Sie haben den Sicherheitsschlüssel falsch eingegeben.";
    }

    ?>

  • #2
    Man sollte mail() nicht für den Mail-Versand verwenden. Das kann zu unterschiedlichen Fehlverhalten führen. Da jetzt auf Fehlersuche zu gehen ist IMHO sehr aufwändig und Zeitverschwendung. Sinnvoller wäre den Code auf einen fertigen Mailer wie z.B. PHP-Mailer umzubauen.

    Kommentar


    • #3
      EDIT: ich sehe gerade dass bplaced.net (mein Webspaceanbieter) PHP Mailer bzw SMTP nicht unterstützt... https://forum.bplaced.net/t/externer...endbar/21516/5
      dort wird auf die mail() function verwiesen. Welche Alternativen zum PHP Mailer kämen in Frage?

      Okay, das klingt interessant. Vielen Dank. PHP-Mailer scheint recht leicht implementierbar zu sein. Mich interessiert an der Stelle noch: über welche Sicherheitsvorkehrungen verfügt PHP-Mailer? Sind also beispielsweise Filter wie FILTER_SANITIZE_EMAIL oder FILTER_SANITIZE_STRING bereits in irgendeiner Form eingebunden? LG

      Kommentar


      • #4
        PHPMailer verwendet intern auch mail() wenn er nicht anderweitig konfiguriert ist. Die Klasse stellt sicher das da am Ende eine valide Mail rauskommt und auch nur das passiert was erwartet wird. In deinem Code kann der User über $_POST["email"] beliebige Header setzen. Wie z.B. beleibig viele BCC Empfänger etc...

        Kommentar


        • #5
          Zitat von metaljojo Beitrag anzeigen
          .. Ich werde wohl auf google recaptcha wechseln
          Captchas nerven nur noch. Hole dir hier einige Anregungen (Nicht mehr ganz frisch). Das Thema Spam/Bot-Abwehr ist auch hier im Forum einige male vertreten. Da mal die Forensuche bemühen.


          Kommentar

          Lädt...
          X