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