【发布时间】:2010-10-23 20:39:29
【问题描述】:
如今,从 PHP 电子邮件表单中清理数据的最佳做法是什么?
我目前正在使用类似的东西......
$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("me@example.com", $subject, $message, $headers);
以这种方式简单地过滤电子邮件字段是否足够保护?我可以/应该更有效地强化脚本以防止垃圾邮件发送者吗?
提前致谢!
[EDIT]澄清,因为到目前为止的答案表明我没有很好地解释自己。
我主要关心的不是垃圾邮件机器人获取此脚本,而是任何人利用它向me@example.com 以外的任何地址发送非法电子邮件。这可能包括一个机器人,但也可能是一个击败 CAPTCHA 测试的人。
我正在寻找的是 PHP,它将确保 mail() 方法发送的电子邮件不被劫持。这可能是一个简单地去除某些字符的正则表达式或过滤器或类似的。再次感谢。[/EDIT]
【问题讨论】:
标签: php email code-injection