2009-09-11 26 views
5

我在网站上使用Django Contact Form以允许访问者发送电子邮件。发送邮件时是否需要转义字符?

目前,它是转义字符,因此单引号和双引号分别转换为'"。如果引号显示为'",则电子邮件将更具可读性。

我明白为什么我不应该将来自访问者的非转义输入放入我的网页,因为有xss的风险。与电子邮件有相同的风险,还是可以发送访客的非转义输入?

回答

4

如果这些是HTML电子邮件,那么你不会介意逃跑,所以我假设这些是纯文本?在这种情况下,您要禁用引用。你可以包裹你的模板的身体

{% autoescape off %} 
... 
{% endautoescape %} 

让你独自留下你的角色。

+0

是的,他们是纯文本电子邮件。我认为我过于偏执,担心电子邮件阅读器会将纯文本解析为html。 – Alasdair 2009-09-11 18:42:10

+0

无需偏执,因为您的电子邮件将采用纯文本格式,因此客户端“应该”将其解释为纯文本,而不是通知标签。 – Humphrey 2009-11-30 22:55:25

+0

仅通过在主体中包含HTML,您无法将纯文本电子邮件转换为HTML电子邮件。 “Content-Type:text/html”标题告诉客户端它是HTML,而“Content-Type:text/plain”是纯文本电子邮件。如果不存在标题,则假定纯文本的默认值。 – 2017-12-07 14:52:26

0

我仍然编码他们是安全的。由于大多数电子邮件客户端都允许使用图片,因此无法阻止某人在电子邮件中使用img标签来说出...获取某人的IP地址。

+0

像图片这样的HTML标签仍然只有在您故意将MIME标头包含在邮件中才有效。幸运的是,与IE不同,邮件程序不会执行内容嗅探。 – bobince 2009-09-11 21:41:40

相关问题