2

像 Facebook 这样的网站在向您发送消息的主题行中包含用户的姓名。

因此,您会对用户在消息主题中输入的值进行什么转义?或者,除了 az、0-9、句点、逗号和单引号之外,您是否不允许使用任何其他内容?

4

3 回答 3

1

如果有禁止字符,则需要转义。主题由 NL 终止,因此这是唯一不应该放在标题中的 (ASCII) 字符。

另见rfc821

于 2009-02-10T11:10:39.150 回答
1

联系表格也有同样的问题。

如果您查看电子邮件标题,您会得到以下信息:

Subject: user123 has sent you an invite
From: "User123" <user123@example.org>

您必须确保用户名与电子邮件标题的值不同。如果用户可以将自己命名为“收件人:spamreceiver1@example.org, spamreceiver2@example.org, spamreceiver3@example.org, spamreceiver4@example.org”,您必须清理输入。

搜索“联系表单垃圾邮件”应该会告诉您该怎么做。您至少应该删除所有出现的“收件人:”、“主题:”、“发件人:”等。

于 2009-02-10T11:11:37.353 回答
1

您需要小心电子邮件标题,8 位字符有点禁忌。(邮件服务器将拒绝它们)。

正确的方法是对您的主题行进行 MIME 编码并确保 ASCII 字符 \n 不在主题行中(技术上多行主题是可能的,但我想很多邮件客户端都会遇到问题)

有关详细信息,请参阅http://en.wikipedia.org/wiki/MIME#Encoded-Word

于 2009-02-10T11:28:13.913 回答