Kontaktformular & Spam

M

Meanyue

Aktives Mitglied
Thread Starter
Dabei seit
01.11.2004
Beiträge
481
Reaktionspunkte
0
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
 
Gerne verwendet werden Captchas. Aber ganz ohne PHP wirds wohl nichts. Und ein HTML-Kontaktformular muss vielleicht nicht notwendigerweise automatisch mit SPAM geflutet werden.
 
mit javascript die email adresse einfach zusammensetzen.
das können noch keine programme verarbeiten.
 
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,…
 
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...
 
@mrelan: das is jetzt php oder? ich hab keine ahnung davon


edit: ja ist..
 
@lykantroph: wie mach ich das?? :)
 
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.
 
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?
 
Einfacher geht’s nicht. Wenn das Kontaktformular in PHP geschrieben ist, kannst du es ja auch gleich einbauen.
 
jo ist es leider nicht...naja ich guck mal ob ich eins downloaded bekomme :)

danke euch!
 
Zurück
Oben Unten