在php手册的邮件功能页面,有一个用户注释说“注意防止标题注入”。php邮件头注入预防
在我的应用程序中,我使用邮件功能,并且用作函数参数的唯一用户输入是电子邮件地址。
我使用正则表达式^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$
对电子邮件地址进行初步检查。
这是否也可以防止头注入?
感谢,
JRH
在php手册的邮件功能页面,有一个用户注释说“注意防止标题注入”。php邮件头注入预防
在我的应用程序中,我使用邮件功能,并且用作函数参数的唯一用户输入是电子邮件地址。
我使用正则表达式^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$
对电子邮件地址进行初步检查。
这是否也可以防止头注入?
感谢,
JRH
有人将要注入是这样的:
[email protected]
CC:[email protected],[email protected],spam_address3 @域名.com
您不允许\ r \ n这是定义新标题信息所必需的。所以你的应用程序很安全。
只有在用户提供的东西放入邮件标题内时,标题注入才是风险。一个典型的例子是使用发布的电子邮件地址来设置回复标题。
这是我用:
$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);