无需HTML编码即可安全地呈现HTML

时间:2011-05-04 21:58:31

标签: html security wysiwyg html-encode

假设您希望允许非技术用户控制公共网站/应用上显示的内容。如果内容仅仅是文本,那么您可以在显示文本时对其进行HTML编码,以防止恶意脚本在进入您的数据库时被执行。

当您想要将数据显示为HTML时(即通过WYSIWYG编辑器输入数据时),可以使用哪些选项来阻止此情况?我每次要显示时都要用黑名单清理数据吗?

此外,假设数据已被泄露。当HTML编码不是一种选择时,我真的在寻找限制这种攻击造成的伤害的方法。

出于我的目的,该站点正在运行ASP.NET MVC 3,我正在使用jQuery。

1 个答案:

答案 0 :(得分:3)

您始终可以将元素和属性名称列入白名单,而不是列入黑名单。 .NET HTML whitelisting (anti-xss/Cross Site Scripting)讨论了针对.NET的白名单HTML清理程序。

其他选项包括在一次性域中的iframe中加载内容,但这不会阻止内容执行某些类型的攻击 - 重定向到网络钓鱼页面,开始下载恶意软件,扫描本地网络,利用XSRF使用用户凭据等的漏洞