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

Email PHP邮件功能,用于通过表单发送未经请求的电子邮件,email,validation,email-validation,php,Email,Validation,Email Validation,Php,最近我们发现有人从我们的服务器发送了未经请求的电子邮件。这导致服务器被列入黑名单。我假设这是黑客使用的表单没有正确转义数据,或者可能是其他原因吗? if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { $message = $email." says hello"; $headers = "From: me@example.com"; mail('to@example.co

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

    if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))
    {
        $message = $email." says hello";
        $headers = "From: me@example.com";
        mail('to@example.com', 'Subject', $message, $headers);          
    }
我们有许多网站有自己的“联系我们”类型的表格。我正在检查所有表单,并确保转义post数据。我发现有一个表单在未首先验证的情况下向消息中添加POST数据。在发送电子邮件之前,我刚刚加了一张支票。您认为以下内容就足够了吗?或者在通过筛选器运行电子邮件帖子之前,是否最好先将其转义\u 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服务器

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


我不太明白你的问题,所以你有一个免费的形式,任何人都可以发送任何邮件给任何收件人从任何发件人?或者你有“联系我们”表格?或者您担心有人可以访问您的服务器?如果您有SMTP服务器,它可能是一个开放式中继@阿德:对不起,我说不清楚。不,我们没有免费的表单,我们有很多网站都有自己的“联系我们”类型的表单。@AlvinWong谢谢你的链接,它说邮件服务器不是一个相对开放的服务器。事实上,我不认为一定是PHP造成了这个问题。您可以检查[CBL](),如果您被列在那里,它会告诉您问题所在。