8

ホワイトリストも定義されている.NET用の包括的なHtmlクリーナー/Anti-Xssライブラリはありますか?Microsofts Anti-Xssから始めるのが良いことは知っていますが、許可されたhtmlタグとcssの適切なホワイトリストが必要です。誰か知っていますか?

4

2 に答える 2

10

MicrosoftのAnti-XSSライブラリ(あなたが言及した)の何が問題になっていますか?

ホワイトリストに基づいて文字をフィルタリングし、HTMLを解析し、ホワイトリストに基づいてノードをフィルタリングし、(安全な)HTMLを再生成する包括的なHTMLサニタイズを備えています。ホワイトリストは(コードが開いているので)変更できますが、変更したいかどうかはわかりません。

使い方も簡単です:

var sanitizedHtml = Microsoft.Security.Application.Sanitizer.GetSafeHtmlFragment(inputHtml);
于 2010-05-05T13:09:38.333 に答える
1

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>

この記事も参照してください。

于 2010-01-12T21:05:23.377 に答える