Kontaktformular & Spam

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von Meanyue, 12.11.2006.

  1. Meanyue

    Meanyue Thread Starter MacUser Mitglied

    Beiträge:
    478
    Zustimmungen:
    0
    MacUser seit:
    01.11.2004
    Hi Leute! Habe keine Ahnung von php und kaum Zeit mich reinzuarbeiten.
    Habe ein HTML Kontaktformular, wie schütze ich mich am besten und einfachsten vor Spam? Vielleicht kann mir jemand helfen! Wäre super dankbar!:)

    gruß, meanyue
     
  2. der_Kay

    der_Kay MacUser Mitglied

    Beiträge:
    1.693
    Zustimmungen:
    7
    MacUser seit:
    02.09.2004
    Gerne verwendet werden Captchas. Aber ganz ohne PHP wirds wohl nichts. Und ein HTML-Kontaktformular muss vielleicht nicht notwendigerweise automatisch mit SPAM geflutet werden.
     
  3. lykantroph

    lykantroph MacUser Mitglied

    Beiträge:
    321
    Zustimmungen:
    12
    MacUser seit:
    02.12.2004
    mit javascript die email adresse einfach zusammensetzen.
    das können noch keine programme verarbeiten.
     
  4. liquid

    liquid MacUser Mitglied

    Beiträge:
    3.148
    Medien:
    2
    Zustimmungen:
    111
    MacUser seit:
    21.07.2004
    Sowas zum Beispiel bietet sich an, oder
    einfach mal im iNet wühlen nach "email im Quellcode verschlüsseln" da findest
    du unzählige Hits,… das ist auch imho die einfachste Möglichkeit. Zwar nicht
    die sicherste, aber immer noch besser, als die Adresse blank im Code stehen zu
    haben.

    Greetz,…
     
  5. mrelan

    mrelan MacUser Mitglied

    Beiträge:
    685
    Zustimmungen:
    0
    MacUser seit:
    26.06.2005
    das problem ist, daß früher oder später sehr wahrscheinlich ein spam bot das formular entdeckt. und wenn es unsauber programmiert ist, kann er damit nicht nur spam an dich schicken, sondern an jede beliebige adresse.
    hier ein beispiel, mit dem das nicht so einfach geht:

    Code:
    <?php
    //email adresse, an die gesendet werden soll.
    $user_email="<email-adresse hier eingeben>";
    
    $action = 'start';
    
    if (isset($_POST['email']))
    {
       if (preg_match('/^[\w.+-]{2,}\@[\w.-]{2,}\.[a-zA-Z]{2,6}$/', $_POST['email']) 
             && checkdnsrr(substr($_POST['email'], strpos ($_POST['email'], '@') + 1), 'MX')) {
             if (preg_match('/^[[:print:]]*$/', $_POST['subject']))
                if (preg_match('/^[[:print:][:space:]]*$/', $_POST['message']))
                   if (preg_match('/^[\w ]*$/', $_POST['name'])) {
                         if (mail($user_email, $_POST['subject'], $_POST['message'], 'From: ' . $_POST['name'] . '<' . $_POST['email'] . '>'))
                            $action = 'messageaccepted';
                         else
                            $error = 'Mail konnte nicht versendet werden.';
                   }
                   else
                      $error = 'Ihr Name enthält ungültige Zeichen.';
                else
                   $error = 'Ihre Nachricht enthält ungültige Zeichen.';
             else
                $error = 'Ihr Betreff enthält ungültige Zeichen.';
       }
       else
          $error = 'Ihre email-Adresse ist ungültig.';
    }
    if(isset($error)){
    	echo 'Ein Fehler trat auf: '.$error;
    }
    if($action == 'messageaccepted')
    	echo 'Ihre Nachricht wurde versendet.';
    else echo 'Bitte füllen Sie das Kontaktformular aus:
    <form action="" method="post">
    <div>
    <label>Name</label>
    <br />
    <input class="form-input-field" type="text" name="name" size="40" value="' . $_POST['name'] . '" maxlength="255" />
    <br />
    <label>email</label>
    <br />
    <input class="form-input-field" type="text" name="email" size="40" value="' . $_POST['email'] . '" maxlength="255" />
    <br />
    <label>Betreff</label>
    <br />
    <input class="form-input-field" type="text" name="subject" size="40" value="' . $_POST['subject'] . '" maxlength="255" />
    <br />
    <label>Nachricht</label>
    <br />
    <textarea class="form-input-field" name="message" rows="8" cols="38">' . $_POST['message'] . '</textarea>
    <input type="hidden" name="smethod" value="form" />
    <br />
    <input class="form-input-button" type="reset" name="resetButton" value="Zurücksetzen" />
    <input class="form-input-button" type="submit">' . $lang['userfound']['form']['submit'] . '</input>
    </div>
    </form>';
    ?>
    
    allerdings kann der bot immernoch jede sekunde das formular ausfüllen und dir damit auf die nerven gehn. um das zu verhindern, musst du z.B. mit datenbankabfragen ein zeitlimit oder ip-sperren machen, was etwas aufwändiger ist...
     
  6. Meanyue

    Meanyue Thread Starter MacUser Mitglied

    Beiträge:
    478
    Zustimmungen:
    0
    MacUser seit:
    01.11.2004
    @mrelan: das is jetzt php oder? ich hab keine ahnung davon


    edit: ja ist..
     
  7. Meanyue

    Meanyue Thread Starter MacUser Mitglied

    Beiträge:
    478
    Zustimmungen:
    0
    MacUser seit:
    01.11.2004
    @lykantroph: wie mach ich das?? :)
     
  8. heldausberlin

    heldausberlin MacUser Mitglied

    Beiträge:
    14.081
    Zustimmungen:
    302
    MacUser seit:
    01.05.2004
    Du musst als erstes die Eingabe BCC und CC in den Kontaktfeldern sperren, ansonsten fungiert dein Server als Spamserver.
    Dann solltest du die einzelnen Felder bezüglich der Eingabe konkret einschränken.
    Also im Feld E-Mail muss eine gültige E-Mailadresse stehen, darf keine zweite stehen, etc.
    In allen anderen Feldern dürfen KEINE E-Mailadresse stehen.
    Das bringt schon mal einiges.
     
  9. Meanyue

    Meanyue Thread Starter MacUser Mitglied

    Beiträge:
    478
    Zustimmungen:
    0
    MacUser seit:
    01.11.2004
    jup die brauch ich auch nicht und hab das auch gelesen grad...danke! aber wie kann ich mehr schützen auf einfache weise...java oder so?
     
  10. heldausberlin

    heldausberlin MacUser Mitglied

    Beiträge:
    14.081
    Zustimmungen:
    302
    MacUser seit:
    01.05.2004
    Einfacher geht’s nicht. Wenn das Kontaktformular in PHP geschrieben ist, kannst du es ja auch gleich einbauen.
     
Die Seite wird geladen...

Diese Seite empfehlen