0
假设您希望允许非技术用户控制出现在公共站点/应用程序中的内容。如果内容仅为文本,则可以在显示文本时对文本进行HTML编码,以防止恶意脚本在进入数据库时执行。安全地呈现HTML而不使用HTML编码
如果要将数据显示为HTML(即通过所见即所得编辑器输入数据)时,有哪些选项可用于防止此情况发生?每次我想要显示它时,我将不得不使用黑名单清理数据?
此外,假设数据已被泄漏。如果HTML编码不是一种选择,我真的很想找到方法来限制这种攻击造成的损失。
为了我的目的,该网站正在运行ASP.NET MVC 3,并且正在使用jQuery。
我去了微软的AntiXSS库 - 使用起来非常简单。听到默认的HTML编码是黑名单方法,我真的很惊讶吗?无论如何 - 感谢指引我迈向白名单(我意识到这个概念 - 只是没有想到将其应用于HTML)。 – Mayo 2011-05-06 14:58:47
“默认的HTML编码是黑名单方法?”:因为字符集是有限的,它同时列入黑名单和白名单。假设字符集是“abcd”如果你说“字符a和b不允许”或者“c和d允许”是相同的。 – usr 2011-05-26 18:43:46
@usr。清楚的是,我只是在元素和属性名称的背景下讨论了白名单。根据一些定义,你是对的,当涉及到有限集合时,黑名单和白名单之间没有区别。但有些人将白名单定义为只允许那些你可以证明是安全的事物,而将黑名单列入禁止那些证明有害的事物。根据这些定义,有限集合的黑名单和白名单元素之间可能存在重大差异。 – 2011-05-26 19:16:35