Was wird heutzutage als beste Methode angesehen, Daten aus einem PHP-E-Mail-Formular zu bereinigen?Was ist die beste Vorgehensweise, um E-Mail-Injection-Angriffe in PHP zu verhindern?
ich zur Zeit so etwas wie dieses bin mit ...
$msg = $_POST['msg'];
$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
$name = $_POST['name'];
$subject = "Message from the MY_WEBSITE website e-mail system";
$message = "From: " . $name . "\n";
$message .= "Email: " . $email . "\n\n";
$message .= $msg;
$headers = "From: " . $email . "\r\n" .
"Reply-To: " . $email . "\r\n" .
"X-Mailer: PHP/" . phpversion();
$mailSuccess = mail("[email protected]", $subject, $message, $headers);
Ist es ausreichend Schutz der E-Mail-Feld auf diese Weise einfach zu filtern? Kann/sollte ich das Skript effektiver schützen, um gegen Spammer zu schützen?
Vielen Dank im Voraus!
[EDIT] Klärung, da die Antworten bisher darauf hindeuten, dass ich mich nicht gut erklärt habe.
Ich bin nicht hauptsächlich besorgt über Spambots, die dieses Skript bekommen, aber mit jedem, der es verwendet, um illegale E-Mails an eine andere Adresse als [email protected]
zu senden. Dies könnte einen Bot enthalten, könnte aber auch ein Mensch sein, der einen CAPTCHA-Test besiegt.
Was ich suchen ist PHP, die sicherstellen, dass die E-Mail von der mail() Methode nicht entführt wird. Dies ist wahrscheinlich eine Regex oder Filter oder ähnliches, die einfach bestimmte Zeichen entfernt. . Nochmals vielen Dank [/ EDIT]
> Best Practice (imho) ist nicht E-Mails an E-Mail-Adressen aus einem HTML-Formular zu senden. Nur um in diesem Punkt klar zu sein, der angegebene Code nicht - oder zumindest sollte nicht - E-Mails an andere als die Website-Besitzer senden. Diese Adresse ist in PHP festgeschrieben ([email protected]). Was ich sicherstellen will, ist, dass niemand das Skript entführt, wie bei der klassischen \ ncc: [email protected], um andere zu spammen. Danke für den Link! : c) – Wikiup
Sorry, du hast Recht: Ich habe es falsch gelesen. Jetzt behoben. – cletus