6

XSS 攻撃を防ぐ目的で、HTML を受け入れてデータベースに保存し、後で取得してレンダリングするテキスト ボックスがあるページを更新しています。

私の理解では、AntiXSS.GetSafeHtmlFragment()メソッドを使用して HTML をサニタイズできるということです。HTML をデータベースに保存する前にこれを行う限り、問題はありませんか? Web ページに HTML を出力する場合、何かする必要はありますか?

また、ホワイトリストは一種のブラックボックスのようです。要件に基づいてこれを更新する方法はありますか?

4

4 に答える 4

4

あなたは設定する必要があります。明らかに、これはすでにデータベースにあるものからあなたを保護しません。

AntiXSS.GetSafeHtmlFragment()保存時ではなく、ページの出力時に使用できます。ただし、保存するときに行う方がおそらく安全です。ただし、レンダリング中と保存中に両方を実行したくないでしょう。

ホワイトリストは編集できません。

于 2010-01-08T23:47:32.307 に答える
3

最新の4.xAnti-XSSライブラリでは、GetSafeHtml()およびSetSafeHtmlFragment()は、HtmlSanitizationLibraryアセンブリに移動されたMicrosoft.Security.ApplicationのSanitizerクラスの下にあります。

[非推奨のリンク:http ://www.microsoft.com/en-us/download/details.aspx?id = 28589]更新:これはNuGetパッケージに移動されたようです:https ://www.nuget.org / packages / HtmlSanitizationLibrary /

于 2012-06-23T06:58:54.540 に答える
3

「ブラック ボックス」に関するご質問について: はい、ブラック ボックスであり、編集することはできないと理解しています。より詳細な情報をお探しの場合は、AntiSamy.NET プロジェクトをご覧ください。

于 2010-06-12T02:58:43.450 に答える
1

もうすぐです。適切なエンコーディングを選択していることを確認する必要があります。たとえば、ユーザー入力がURLに入力された場合は、AntiXSS.UrlEncode()を使用する必要があり、JavaScriptに入力された場合は、AntiXSS.JavaScriptEncode()を使用する必要があります。入力を保存するときに出力形式がどうなるかを保証できない場合は、出力時にサニタイズを実行することをお勧めします。

于 2010-01-08T23:56:00.123 に答える