在网站上,如果我有一个表单,用户可以输入一些文本,然后显示一个显示用户输入内容的页面,我知道html将用户输入的值编码以防止脚本攻击。如果表单发送的是HTML电子邮件,我认为我会做同样的事情,但电子邮件有没有特殊情况,并且电子邮件客户端是否会运行注入到电子邮件中的任何脚本?对电子邮件的用户输入进行编码
1
A
回答
0
在将发布的内容分配给电子邮件的HTML正文之前,您一定要进行HTML编码。您的代码应该已经拒绝诸如“< script>”之类的内容无效,而不仅仅是在电子邮件的情况下,但在所有情况下。
有没有其他的考虑,你需要担心。
0
我相信通过将电子邮件正文标记为文本/纯文本可以避免javascript和/或html攻击(但我不会信任遵循头文件提示的前景)。
0
你应该使用一个SMTP库,它承担由重复或丢失转义引起的任何负担(和潜在的错误)。然后,只使用纯文本邮件(文本/纯文本)。
为了避免有问题的邮件客户端的安全问题,您还可以发送几乎为空的邮件,并将文本作为附件发送(文件扩展名为“.txt”,内容类型为“text/plain”)。
1
虽然在发送文档之前从文档中剥离<script>
标签仍然是个不错的主意,但我认为威胁较低。我相信你会很难找到一个电子邮件客户端(仍然得到支持),它不会在呈现电子邮件之前剥离脚本。
0
我强烈建议使用现有的经过测试的解决方案发送邮件。如果您将用户输入传递给PHP mail()函数(即使使用HTML编码),攻击者也有可能制作一个实际包含标题的“主体”,以创建多部分消息。
相关问题
- 1. Codeigniter - 面对问题发送电子邮件和输入用户电子邮件
- 2. CakePHP电子邮件传输编码
- 3. 电子邮件的编码主题行
- 4. 使用用户,电子邮件和密码进行Firebase注册
- 5. 对SQL注入的用户输入进行编码
- 6. iOS用户电子邮件密码输入框
- 7. 使用字符串对电子邮件地址进行编码和解码
- 8. 用收件人,主题和正文对电子邮件进行QR编码?
- 9. 在表单中发送电子邮件给用户输入电子邮件。 ASP.NET
- 10. 当用户输入电子邮件地址时自动发送电子邮件
- 11. PHP电子邮件编码?
- 12. ActionMailer.Net电子邮件编码
- 13. Outlook电子邮件编码
- 14. IMAP编码电子邮件
- 15. 电子邮件输入
- 16. @对BlackBerry电子邮件进行验证
- 17. 输入的电子邮件覆盖SecureRandom电子邮件?
- 18. 使用电子邮件链接中的代码进行用户帐户验证
- 19. 消毒用于电子邮件的用户输入
- 20. 使用Android的用户输入发送电子邮件
- 21. 何时何地对用户输入进行编码?
- 22. 如何对用户输入操作符进行编码
- 23. 让用户编辑ActionMailer电子邮件
- 24. 将电子邮件发送到用户的电子邮件基础上,用户输入
- 25. 添加用户表单输入到电子邮件VBA代码到电子邮件正文
- 26. 如何对电子邮件客户端进行单元测试
- 27. 通过电子邮件和PHP进行电子邮件验证?
- 28. 从用户输入获取的电子邮件ID
- 29. 发送包含用户输入数据的电子邮件
- 30. Shell脚本 - 基于用户输入的电子邮件脚本