PHP Mail函数用于通过表单发送未经请求的电子邮件

时间:2012-06-25 09:14:30

标签: email validation email-validation php

最近我们发现有人从我们的服务器发送了不请自来的电子邮件。这导致服务器被列入黑名单。我认为这是黑客使用的表格没有正确地转义数据,或者它可能是其他东西吗?

我们有许多网站都有自己的“联系我们”类型表单。我将浏览所有表单并确保转发帖子数据。我发现一个表单将POST数据添加到消息而不先验证它。我在发送电子邮件之前刚刚添加了一张支票。您认为以下内容是否足够,或在通过filter_var运行之前逃离电子邮件帖子值是否更好?

    if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))
    {
        $message = $email." says hello";
        $headers = "From: me@example.com";
        mail('to@example.com', 'Subject', $message, $headers);          
    }

我是否应该检查转移日志中是否有标头注入攻击/其他攻击,如果有,我会寻找什么?

1 个答案:

答案 0 :(得分:0)

您可以做的最好的事情是检查您的日志,看看谁发送这些电子邮件,因为您可能不会检查所有用户的脚本。 此外,过滤/转义/编码您自己的表单输入没有任何意义(尽管您肯定应该这样做),因为您的任何用户都可以使用您的smtp服务器。

以下是跟踪邮件日志的方法:

tail -f /var/mail/exim_mainlog
tail -f /var/log/exim_mainlog
tail -f /var/log/exim_paniclog
tail -f /var/log/exim_rejectlog