2012-03-07 3 views
2

Я хочу использовать php-скрипт для отправки электронной почты из html-файла на веб-сайте. Будет ли этот скрипт PHP достаточно безопасным для взлома и спама?Безопасный скрипт электронной почты php

<?php 

$to = "[email protected]"; 
$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: [email protected]"); 
?> 
+1

Выглядит хорошо. Пока проверяется все, что может быть отправлено, вы находитесь в безопасности. – Olaf

+1

Вероятно, лучше подходит для http://codereview.stackexchange.com/. – j08691

+2

Пока ваш скрипт не позволяет кому-то указать свой адрес получателя, он не будет полезен для спамеров. – ghoti

ответ

1

FILTER_SANITIZE_EMAIL удаляет незаконные символы адреса электронной почты из строки; это, следовательно, не самый лучший вариант для содержимого электронной почты (как бы он ни был полезен для адресов электронной почты). Хотя удаление специальных символов HTML полезно при предотвращении атак XSS, стоит отметить, что есть законные причины для сообщения < и> в сообщениях (то есть прямо сейчас). Поэтому лучше преобразовать эти символы в свои html-объекты.

I.e.
< станет & lt;
и> станет &;

Так что для того, чтобы изменить HTML символы на лиц заменить:
$message = filter_var($message , FILTER_SANITIZE_EMAIL); с
$message = htmlspecialchars($message);
Другие, чем это выглядит хорошо; но помните, что в случаях, когда используется база данных, необходимо также добавить санитарию базы данных.

Смежные вопросы