当前位置:  开发笔记 > 前端 > 正文

为什么要使用白名单进行HTML清理?

如何解决《为什么要使用白名单进行HTML清理?》经验,为你挑选了2个好方法。

我经常想知道 - 为什么在清理HTML输入时使用白名单而不是黑名单?

有多少偷偷摸摸的HTML技巧可以打开XSS漏洞?显然不允许脚本标签和框架,并且HTML元素中的字段将使用白名单,但为什么不允许大部分内容?



1> Quentin..:

如果你从白名单中留下一些东西,那么你只需要打破一些不重要的东西,让你首先考虑一下.

如果你把一些东西从黑名单中删除,那么你就打开了一个很大的安全漏洞.

如果浏览器添加新功能,那么您的黑名单就会过时.


@Carson:基本部分是"如果浏览器添加新功能".只有*没有*方式让你预测这一点.人们也可能会争辩说,迎合人为错误是一般安全的基本理念,因此"如果你从白名单中留下一些东西".
此外,即使你掌握了新的浏览器功能,也存在未记录功能的问题(参见例如Ikke的回答),这可能会让你感到困惑.

2> Ikke..:

昨天就读一下.它在feedparser的手册中.

一个片段:

我调查的越多,我发现的案例越多,Internet Explorer for Windows就会将看似无害的标记视为代码并轻率地执行它.这就是Universal Feed Parser使用白名单而不是黑名单的原因.我有理由相信白名单中没有任何元素或属性是安全风险.我对我没有明确研究的元素或属性完全没有信心.我完全没有信心检测属性值中的字符串,Internet Explorer for Windows将其视为可执行代码.我不会试图保留"只是好风格".所有样式都被剥离.

如果你只将一些元素列入黑名单,并忘记一个重要的元素,则存在严重的风险.当您将一些您认为安全的标签列入白名单时,将某些可能被滥用的内容的风险更小.


@Carson - 是的,但是明天会出现的新漏洞呢?如果你有一个严密的白名单 - 不需要更新.如果你有30个应用程序的黑名单 - 很多更新
推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有