2010-01-07 90 views
0

在php手册的邮件功能页面,有一个用户注释说“注意防止标题注入”。php邮件头注入预防

在我的应用程序中,我使用邮件功能,并且用作函数参数的唯一用户输入是电子邮件地址。

我使用正则表达式^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$对电子邮件地址进行初步检查。

这是否也可以防止头注入?

感谢,
JRH

回答

0

只有在用户提供的东西放入邮件标题内时,标题注入才是风险。一个典型的例子是使用发布的电子邮件地址来设置回复标题。

这是我用:

$email = preg_replace(array("/\r/i","/\n/i", "/%0a/i", "/%0d/i", "/Content-Type:/i", "/bcc:/i", "/to:/i", "/cc:/i", "/Content\-Transfer\-Encoding\:/i", "/Mime\-Version\:/i"), "", $email);