2

ASP.NET 4では、new演算子を使用して<%: ... %>HTMLエンコードされた文字列を出力できます。オペレーターが文字列もHTMLエンコードするように(web.configで)ASP.NET 4を構成することは可能ですか?<%= ... %>

4

2 に答える 2

3

いいえ、幸いです。

このように構成すると、開発者は<%= ... %>エンコードではなく使用する習慣を身に付けることになります。

その後、別の(通常の)プロジェクトで作業する場合、出力のエンコードを忘れてしまいます。

ASP.Net Razorにはこの問題がないため、デフォルトでHTMLエンコーディングが使用されます。
(デフォルトでエンコードされない、切り替えることができるRazorコードはありません)

于 2010-08-04T18:38:32.907 に答える
2

<%:個人的には、この新しい構文は好きではありません。<%= HttpUtility.HtmlEncode(それははるかに明示的であるため、私はむしろ使用します。

これに加えて、HTMLエンコーディングのみを行うため、誤った安心感を与えます。たとえば、このスニペットを見てください。

function myJavaScriptFunction()
{
    var message = '<%: Person.LastComment %>';
    alert(message);
}

適切なエンコーディングを使用していないため、保存されません。以下は安全です:

function myJavaScriptFunction()
{
    var message = '<%: AntiXss.JavaScriptEncode(Person.LastComment) %>';
    alert(message);
}

はるかに明確です。

于 2010-08-04T19:01:31.923 に答える