在其中一个网站中,我发现了文章中的声明:
AntiXSS库采用可接受列表方法,而.NET Framework采用阻止列表方法。
请解释一下,accepted-list approach
和blocked-list approach
???
答案 0 :(得分:5)
在安全用语中, accepted-list 方法被称为a 白名单 方法; 阻止列表 方法称为 黑名单 方法。
请参阅此处What is whitelist and blacklist data?或Google Blacklist vs白名单中的讨论。
Fiction from hollywood: 让我们想象一下病毒爆发(如生化危机电影中的生物病毒爆发)感染,影响了整个世界。你没有受到感染而且你一个人待着,你有一种预感,就是有些人没有像你一样被感染。病毒袭击后,一个人实现感染并成为僵尸需要2-3个小时。您希望建立一个安全的设施,以免被感染。在无线电通信中,您听说有些制药公司为该病毒发明了疫苗。
您现在有两种方法可以为您的安全设施构建周边安全系统:
让我们谈谈哪种方法更安全。
让我们将所有这些放在跨站点脚本(XSS)
的上下文中黑名单方法:阻止所有标签/字符串,例如<脚本>,javascript,src,对象,类,输入,图像,href 。更全面的列表 - https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet
缺点:此黑名单过滤器会错过新引入的html5标记中的漏洞,例如<视频>, <图片> 等因为黑名单还不知道 video 和图片标签可能会被滥用,谁知道可能会有更多实例。 https://html5sec.org/
白名单方法:仅允许已知安全的标签,例如< p> < b> <我> <强大> < ul> < li>。
优点:您比黑名单方法更安全,因为您信任像<这样的标签p> < b> (就像接种疫苗一样)并否认其他一切。其他一切都包括潜在的不安全标签和您不关心的标签。你所关心的只是所谓的安全,你只接受它。
白名单验证通常超出标记,包括css类和javascript事件。如果不是Microsoft AntiXSS,请尝试OWASP AntiSamy。
更多内容: