7

.net 4 では、<%= %> のような新しい <%: %> スクリプト エンクロージャがありますが、html エンコードを行います。人々は、この新しい構文の使用を奨励しています。

私の質問は、<%: %> の方が Microsoft Anti XSS ライブラリを使用する場合と同様に XSS から保護されますか?

Microsoft のセキュリティ担当者は、HTML Encode は十分に保護されないため、絶対に使用しないでください、常に Anti XSS ライブラリ (または別のライブラリ) を使用する必要があると私に言いました。<%: %> でもそれは本当ですか? または、人々が言っ​​ているように、アプリを XSS から保護することを知って、自信を持って <%: %> を使用できますか?

4

2 に答える 2

9

HttpUtility.HtmlEncodeは、エンコーディングにブラック リスト (除外の原則) アプローチを使用します。Anti-XSS ライブラリ(現在はWeb Protection ライブラリとして知られ、SQL インジェクションを緩和するコードも含まれています) は、ホワイトリスト アプローチ (包含の原則) を使用して、ドアをもう少し閉じ、より優れたセキュリティを提供する必要があります。

<%: ... %>は単なるショートカットで<%= Server.HtmlEncode(string) %>あり、アプリケーションで使用されるエンコーダーのセキュリティを提供します。

<%: ... %>新しい構文で好きなエンコーダーを使用できます。Phil Haack は、Anti-Xss ライブラリーをデフォルトのエンコーダーとして接続することに関する素晴らしい投稿をしています。現在、Anti-XSS ライブラリ 3.1 を実行するには中程度の信頼が必要であることに注意してください。これは、将来のリリースで対処されています。

于 2010-06-28T21:46:16.827 に答える
1

新しい構文は、HTML の生のテキスト コンテンツをエスケープするためにのみ使用してください。 編集:および属性。

属性、 Javascript、およびその他のコンテキストについては、引き続き Anti-XSS ライブラリを使用する必要があります。

于 2010-06-28T21:43:27.283 に答える