Как я могу предотвратить внедрение заголовка электронной почты в мою контактную форму?

Я новичок в PHP, но мне удалось создать рабочую контактную форму. Но потом я узнал об инъекции заголовка электронной почты. Как я могу предотвратить это наилучшим образом? Не хочу, чтобы моя форма использовалась для рассылки спама.

Это мой код:

<?php
if ($_POST["email"]<>'') {
$ToEmail = '[email protected]';
$EmailSubject = 'Email Subject';
$mailheader = 'From: [email protected]' . "\r\n" .
'Reply-To:' .$_POST["email"]. "\r\n" .
'MIME-Version: 1.0'."\r\n".
'Content-Type: text/html; charset=utf-8'."\r\n".
'X-Mailer: PHP/' . phpversion();
$MESSAGE_BODY .= "<b>Navn:</b> ".$_POST["name"]."<br />";
$MESSAGE_BODY .= "<b>Telefon:</b> ".$_POST["telephone"]."<br />";
$MESSAGE_BODY .= "<b>Email:</b> ".$_POST["email"]."<br /><br />";
$MESSAGE_BODY .= "".nl2br($_POST["message"])."<br />";
mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure");

?>

1

Решение

Просто поместите проверку для поля электронной почты, как показано ниже:

$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);

if ($email === FALSE) {
echo 'Invalid email';
exit(1);
}

Он проверяет ваш формат электронной почты, который не позволяет вводить какие-либо заголовки.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]