我网站上有一个由PHP驱动的HTML联系表单。目前我使用PHP的mail()函数。因此,我必须进行许多用户输入验证以避免电子邮件头注入攻击。我认为我很安全,但我可能忘记了一些东西,我想转向一个可靠的PHP电子邮件库。我选择的库是Swiftmailer。
现在我想检查Swiftmailer是否解决以下问题:
1. 删除或转义发件人名称中的
PS:我尝试与Swiftmailer团队联系我的问题,但没有成功,所以我在这里尝试。
编辑:
我对Swiftmailer进行了一些测试,目前发现以下情况:
1. 当发件人名称中有
有人能为我澄清1和4吗?我不确定这是否是正常行为...
现在我想检查Swiftmailer是否解决以下问题:
1. 删除或转义发件人名称中的
<
和>
字符。
2. 从发件人名称中删除换行符(\n
,\r\n
等)。
3. 从电子邮件主题中删除或转义换行符。
4. 规范消息正文中的换行符(电子邮件内容)。根据PHP文档,应在内容中使用\n
,并使用\r\n
作为电子邮件标题分隔符。PS:我尝试与Swiftmailer团队联系我的问题,但没有成功,所以我在这里尝试。
编辑:
我对Swiftmailer进行了一些测试,目前发现以下情况:
1. 当发件人名称中有
<
或>
时,您会收到一个“不可传递”的电子邮件错误邮件。这可能会在某种程度上导致您的邮件服务器DOS攻击(也许我是错的)。这正常吗?!
2. 换行符被转义,因此注入攻击失败。
3. 换行符被转义,因此注入攻击失败。
4. 已测试,但我无法看到Swiftmailer做了什么(如果它确实做了什么)。所以我还在黑暗中。有人能为我澄清1和4吗?我不确定这是否是正常行为...