Я хочу использовать php-скрипт для отправки электронных писем из html-файла на веб-сайте. Будет ли этот скрипт PHP достаточно безопасным для взлома и спама?
<?php $to = "emailto@site.com"; $subject = "Sent from site"; $email = $_POST['emailFrom']; $message = $_POST['message']; $email = filter_var($email , FILTER_SANITIZE_EMAIL); $message = filter_var($message , FILTER_SANITIZE_EMAIL); $message = $email . $message; mail($to, $subject, $message, "From: webpage@site.com"); ?>
FILTER_SANITIZE_EMAIL удаляет незаконные символы адреса электронной почты из строки; это, следовательно, не самый лучший вариант для содержимого электронной почты (как бы он ни был полезен для адресов электронной почты). Хотя удаление специальных символов HTML полезно при предотвращении атак XSS, стоит отметить, что есть допустимые причины для отправки сообщений <и> в сообщениях (то есть прямо сейчас). Поэтому лучше преобразовать эти символы в свои html-объекты.
Т.е.
<будет становиться & lt;
и> станет & gt;
Поэтому, чтобы изменить html-символы на их сущности, замените:
$message = filter_var($message , FILTER_SANITIZE_EMAIL);
с
$message = htmlspecialchars($message);
Помимо этого он выглядит хорошо; но помните, что в случаях, когда используется база данных, необходимо также добавить санитарию базы данных.