代码之家  ›  专栏  ›  技术社区  ›  Arron S

是否有HtmlPurifier(php)的.NET实现

  •  7
  • Arron S  · 技术社区  · 16 年前

    是否有一个针对.NET的全面的Html cleaner/Anti-Xss库,它也有一个已定义的白名单。我知道Microsofts Anti-Xss是一个很好的起点,但它需要一个良好的白名单,用于允许的html标记和css。有人知道什么吗?

    2 回复  |  直到 16 年前
        1
  •  10
  •   orip    14 年前

    微软的软件有什么问题 Anti-XSS 图书馆(你提到的)?

    用法也很简单:

    var sanitizedHtml = Microsoft.Security.Application.Sanitizer.GetSafeHtmlFragment(inputHtml);
    
        2
  •  1
  •   Jacobs Data Solutions    16 年前

    MSDN (请参阅“允许受限HTML输入”)清理HTML输入的最佳方法是对输入调用HttpUtility.HtmlEncode(),然后有选择地替换所有白名单标记上的编码,如下所示:

    <%@ Page Language="C#" ValidateRequest="false"%>    
    <script runat="server">    
      void submitBtn_Click(object sender, EventArgs e)
      {
        // Encode the string input
        StringBuilder sb = new StringBuilder(
                                HttpUtility.HtmlEncode(htmlInputTxt.Text));
        // Selectively allow  and <i>
        sb.Replace("&lt;b&gt;", "<b>");
        sb.Replace("&lt;/b&gt;", "");
        sb.Replace("&lt;i&gt;", "<i>");
        sb.Replace("&lt;/i&gt;", "");
        Response.Write(sb.ToString());
      }
    </script>
    

    另见 this article .