代码之家  ›  专栏  ›  技术社区  ›  Matt Briggs

用于.NET的HTML消毒器

  •  19
  • Matt Briggs  · 技术社区  · 16 年前

    我正在启动一个使用asp.NETMVC面向公众的项目。我知道大约有10亿个php、python和ruby html清理工具,但是有人有一些指向.net中好东西的指针吗?你对外面发生的事情有什么经验?我知道stackoverflow是在asp.net中创建的一个允许自由格式HTML的站点,它使用什么?

    6 回复  |  直到 6 年前
        3
  •  4
  •   Christ A    9 年前

    HtmlRuleSanitizer

    根据你的问题,我有以下建议:

    • 您希望允许自由格式的HTML,因此需要一个能够指定一组允许的标记、属性和/或CSS类的解决方案。
    • Html Agility Pack .
    • 您将希望采用白名单方法,因为黑名单消毒剂不会保护您免受任何新HTML规范的影响。此外,由于HTML规范的大小,很难保证黑名单首先涵盖所有情况。

    我也面临同样的问题,并在HTML敏捷包的基础上构建了HtmlRuleSanitizer,这是一个基于白名单规则的HTML清理程序。

        4
  •  3
  •   Ashok Padmanabhan    13 年前

    有一个c版本 here

        5
  •  3
  •   Brandon Joyce    13 年前

    http://wpl.codeplex.com/

    var cleanHtml = Sanitizer.GetSafeHtml(unsafeHtml);
    
        6
  •  1
  •   Sheo Dayal Singh    6 年前

    AntiXss.GetSafeThmlFragments

     string mal = "<IMG NAME = 'myPic' SRC = 'images / myPic.gif' onerror='alert(1)' onerror='alert(1) ><div bottommargin = 150 ondblclick = 'alert('double clicked!')' >< p > Double - click anywhere in the page.</p> </div> ";
                    var cleanHtml = Sanitizer.GetSafeHtmlFragment(mal);
                    Console.Write(cleanHtml);
                    Console.Read(); 
    

    注意:从nugetpackage manager下载AntiXSS库,并包含此名称 源代码中的Microsoft.Security.Application