我应该安全地清理通过电子邮件发送给我的网页联系页面文本吗?

时间:2018-03-19 02:43:45

标签: html security xss

我在网站上有一个联系我们页面。它询问您的姓名,您的想法,并有一个复选框,询问您是否愿意公开您的想法。然后将此页面的内容通过电子邮件发送到Gmail帐户。实际发布(如果可以的话)由人/猴子手动完成。没有任何附件。 Interweb上可能有数十页这样的页面。

通过消毒,我的意思是防止安全/黑客攻击。所以删除奇怪的html字符,如<并且>,转义字符和分号等。当用浏览器和类似的东西查看时,虚假形式从机器人输入可能尝试跨站点脚本的东西。我不是指亵渎,拼写错误或狡猾的意见。

我认为实际上没有任何一点可以清理文本,因为它是servlet - > smtp服务器 - > gmail - > Chrome浏览器。我希望谷歌在消毒恶意电子邮件文本方面做得比以往任何时候都要好得多。有什么相反的吗?

1 个答案:

答案 0 :(得分:2)

如果您要使用标准电子邮件客户端阅读这些电子邮件,那么除了通常的网络钓鱼,跟踪风险以及最坏情况下注入危险附件之外,它不会造成危险,您不应该无论如何都要打开。电子邮件客户端已经尝试隔离并消除任何传入内容。但是,如果您确实在其他地方显示此内容,例如在网站的CRM或管理面板中,XSS风险要高得多。

  • 如果您要发送HTML电子邮件,则适用所有常用的HTML转义规则(至少更改<&lt;&&amp; )。

  • 如果您要发送纯文本电子邮件,那么其中的任何文字都只是文字,因此您不需要做任何事情。但是,以防万一在电子邮件的最开头不要让攻击者提供的文本(插入一些介绍,例如“用户已发送此信息:”),因此他们无法插入uuencode标题。

  • 要特别注意将用户提交的值放入标题中,例如Subject / From / Reply-To。如果您的电子邮件发送库无法处理这些字段的转义,则必须处理它(例如,应用quoted-printable)。防止在这些字段中插入换行符也很重要,因为这可能会被滥用于标头注入和垃圾邮件(例如,即使您的表单有1行<input>用于名称,攻击者也可以提交完整格式的电子邮件带有标题和正文的邮件,让你随心所欲地发送他们想要的任何内容。