如何限制从PHP发送的出站SMTP邮件

Dam*_*eem 9 php email iis-6 smtp fastcgi

我们有共享托管服务器,它们使用PHP fastcgi(在IIS上)为多个客户端(共享托管).客户经常使用旧的可利用代码,这会导致其应用程序出现漏洞,最终被黑客用来安装恶意代码.大多数情况下,此代码用于从我们的服务器发送垃圾邮件.

我们无法控制客户代码,因此修补漏洞是不可能的.

但是,我们希望阻止客户端发送垃圾邮件,因为他们会在Y时间内发送超过X封电子邮件.

设置是基于fastcgi的,因此php和webserver之间几乎没有关系.PHP通过localhost上的SMTP发送邮件.邮件服务器允许中继所有localhost连接(显然).

我想到的一件事是在fastcgi环境中设置一个包含标识符的环境变量,并使用php的prepend文件选项为php的邮件程序发送的所有邮件添加标题.之后我们可以使用该邮件标题来识别垃圾邮件的罪魁祸首.

上面的选项在发送电子邮件时仍然不会使用常规telnet(telnet localhost,HELO,MAIL FROM等)来处理垃圾邮件脚本.

我的问题是:我是否提到了处理我们问题的最好也许唯一的选择?或者有更好的解决方案吗?如果是这样,请解释您将如何处理该问题.

Dam*_*eem 1

正如预期的那样,Stack Overflow 似乎不适合回答这个问题。提供的答案没有公开一些明确的方法来识别 FastCGI 会话与 MTA (SMTP) 服务器的连接。

我将遵循我最初的想法,即向 php 环境添加标识符。可以使用该函数在 PHP 的前置文件中读取该标识符getenv()。然后可以将该标识符添加到外发邮件的邮件标头中。

此外,我还启用了mail.add_x_headerini 设置,这将有助于识别哪个脚本导致垃圾邮件运行。

我在赏金期间将问题悬而未决,希望其他选项会神奇地出现:)