PHP邮件功能用于通过表单发送未经请求的电子邮件


PHP Mail function used to send out unsolicited email via forms

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

我们有许多网站有自己的"联系我们"类型的表格。我正在浏览所有表格并确保帖子数据被转义。我发现一个表单将 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);          
    }

我是否应该检查传输日志中的标头注入攻击/其他攻击,如果是这样,我会寻找什么?

你能做的最好的事情是检查你的日志,看看谁在发送这些电子邮件,因为你可能不会检查所有用户的脚本。此外,过滤/转义/编码您自己的表单输入(尽管您绝对应该这样做)没有任何意义,因为您的任何用户都可以使用您的 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