0

の辞書パラメータの形状に関する情報については、検索エンジンでは十分ではありませんでした

    AjaxControlToolkit.Sanitizer.HtmlAgilityPackSanitizerProvider sanitizer = 
    new AjaxControlToolkit.Sanitizer.HtmlAgilityPackSanitizerProvider();

    textBoxPublicInput.Text =
    sanitizer.GetSafeHtmlFragment(
            textBoxPublicInput.Text,aDictionary,anotherDictionary
                                 );

aDictionary および anotherDictionary パラメータには何を入力する必要がありますか? 要素は何でなければなりませんか?文字列辞書の配列に文字列が必要だと思いますが、どの文字列ですか? ルールは何ですか?

信頼できるタグが < a >、< p >、< div >、および < ul >- < li > のみであると仮定します。主な目的は、html エディター エクステンダーによるインジェクションからサイトを保護することです。

御時間ありがとうございます。

4

1 に答える 1

1

以下はナゲットに適用されますAjaxControlToolkit.HtmlEditor.Sanitizer

Dictionary<string, string[]>キーが要素名である必要があります (例:p値は、その要素に許可された属性の配列です (例: styleclass)。

    var validHtmlTags = new Dictionary<string, string[]>
    {
        {"p", new[] {"style", "class", "align"}},
        {"div", new[] {"style", "class", "align"}}
        //etc ...
    };

   var sanitizer = new AjaxControlToolkit.HtmlEditor.Sanitizer.DefaultHtmlSanitizer();
   var sanitized = sanitizer.GetSafeHtmlFragment(toBeSanitizedText, validHtmlTags);
于 2015-04-09T06:42:51.277 に答える