接受列表方法解释AntiXSS

时间:2015-04-08 05:03:53

标签: asp.net-mvc antixsslibrary

在其中一个网站中,我发现了文章中的声明:

  

AntiXSS库采用可接受列表方法,而.NET Framework采用阻止列表方法。

请解释一下,accepted-list approachblocked-list approach ???

是什么意思

1 个答案:

答案 0 :(得分:5)

  

在安全用语中, accepted-list 方法被称为a    白名单 方法; 阻止列表 方法称为 黑名单 方法。

请参阅此处What is whitelist and blacklist data?或Google Blacklist vs白名单中的讨论。

Fiction from hollywood: 让我们想象一下病毒爆发(如生化危机电影中的生物病毒爆发)感染,影响了整个世界。你没有受到感染而且你一个人待着,你有一种预感,就是有些人没有像你一样被感染。病毒袭击后,一个人实现感染并成为僵尸需要2-3个小时。您希望建立一个安全的设施,以免被感染。在无线电通信中,您听说有些制药公司为该病毒发明了疫苗。

您现在有两种方法可以为您的安全设施构建周边安全系统:

  1. 不允许受病毒感染僵尸的人[但允许其他人] ==>黑名单方法
  2. 只允许接种疫苗的人[否认其他人] ==>白名单方法
  3. 让我们谈谈哪种方法更安全。

    1. 不允许感染病毒但允许其他人的人      当病毒感染需要2-3个小时才能显示出来时,此方法将失败。被病毒攻击并且尚未意识到感染的人将通过并感染安全设施。
    2. 只允许接种疫苗并拒绝其他人的人      接种疫苗的人不会感染,而你只允许接种疫苗。你不关心人类是否被病毒感染或被病毒攻击(并没有意识到被感染者),你否认它们。您只允许因为您信任疫苗而接种疫苗的人。这是一种更安全的方法不是吗?
    3. 让我们将所有这些放在跨站点脚本(XSS)

      的上下文中
      1. 黑名单方法:阻止所有标签/字符串,例如<脚本>,javascript,src,对象,类,输入,图像,href 。更全面的列表 - https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet

        缺点:此黑名单过滤器会错过新引入的html5标记中的漏洞,例如<视频>, <图片> 等因为黑名单还不知道 video 图片标签可能会被滥用,谁知道可能会有更多实例。 https://html5sec.org/

      2. 白名单方法:仅允许已知安全的标签,例如< p> < b> <我> <强大> < ul> < li>。

        优点:您比黑名单方法更安全,因为您信任像<这样的标签p> < b> (就像接种疫苗一样)并否认其他一切。其他一切都包括潜在的不安全标签和您不关心的标签。你所关心的只是所谓的安全,你只接受它。

      3. 白名单验证通常超出标记,包括css类和javascript事件。如果不是Microsoft AntiXSS,请尝试OWASP AntiSamy。

        更多内容:

        1. Why use a whitelist for HTML sanitizing?
        2. https://kevtownsend.wordpress.com/2011/08/24/whitelisting-vs-blacklisting/
        3. What is whitelist and blacklist data?