5

MVC が HTML エンコーディングを導入したので、

<%: blah %> 

使用する価値はまだありますか

<%= AntiXSS.HTMLEncode(blah) %> 

代わりは?

例: 私のアプリケーションはすべてのコンテンツ (JavaScript を含む) を取り込み、それを生の状態でデータベースに保存します。私は、MVCの「もの」のようなものを使用してすべてを出力<%: model.Name %>し、MVCの「もの」に頼ってエンコードを行うこと を計画していました。

その方法は、AntiXSS に依存するのに十分安全ですか?それとも、AntiXSS ライブラリを明示的に使用する必要がありますか? AntiXSS ライブラリを使用する必要がある場合、なぜそのようなものが既に MVC に組み込まれていないのか尋ねてもよろしいですか?

4

3 に答える 3

5

実際の違いはないと思いますが、本当に心配なら、この記事で説明されているように、AntiXss ライブラリを asp.net の既定のエンコーダーとして使用できます。

于 2010-08-05T23:30:09.000 に答える
2

<%:HTMLエンコーディングでのみエンコードします。HTML属性、Javascript、またはHTML本文のルールが適用されるスペースに出力する場合でも、エンコード方法を手動で選択する必要があります。

于 2010-08-06T20:27:03.740 に答える
1

Phil Haack の記事: ASP.NET 4 (MVC を含む) でAntiXss を ASP.NET の既定のエンコーダーとして使用すると、既定の HTML エンコーダーをオーバーライドして、AntiXSS エンコーダーを使用できます。

「AntiXSS.HTMLEncode」に反対する理由 1) 短縮形の方がコーディングしやすい 2) ヘルパー メソッド (<%:%>/@:/HttpUtility.HtmlEncode/Server.HtmlEncode/etc.) を呼び出し、エンコーダの実装を挿入すると、コードが特定の AntiXSS 実装よりも保守性が高くなります。

ただし、「AntiXSS.HTMLEncode」は.NETバージョン<4の唯一のオプションだと思います

于 2011-01-05T21:41:30.890 に答える