假设您希望允许非技术用户控制公共网站/应用上显示的内容。如果内容仅仅是文本,那么您可以在显示文本时对其进行HTML编码,以防止恶意脚本在进入您的数据库时被执行。
当您想要将数据显示为HTML时(即通过WYSIWYG编辑器输入数据时),可以使用哪些选项来阻止此情况?我每次要显示时都要用黑名单清理数据吗?
此外,假设数据已被泄露。当HTML编码不是一种选择时,我真的在寻找限制这种攻击造成的伤害的方法。
出于我的目的,该站点正在运行ASP.NET MVC 3,我正在使用jQuery。
答案 0 :(得分:3)
您始终可以将元素和属性名称列入白名单,而不是列入黑名单。 .NET HTML whitelisting (anti-xss/Cross Site Scripting)讨论了针对.NET的白名单HTML清理程序。
其他选项包括在一次性域中的iframe中加载内容,但这不会阻止内容执行某些类型的攻击 - 重定向到网络钓鱼页面,开始下载恶意软件,扫描本地网络,利用XSRF使用用户凭据等的漏洞