質問

ASP.NET 4 では、新しい <%: ... %> HTML エンコードされた文字列を出力する演算子。設定は可能ですか ASP.NET 4 (web.config内) <%= ... %> 演算子は文字列も HTML エンコードしますか?

役に立ちましたか?

解決

いいえ、幸います。

あなたはそれをこのように設定した場合、あなたの開発者は<%= ... %>を使用してコードしないのが習慣に取得されます。

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

ASP.Netレイザーにはありませんそれは、この問題を持っていないので、HTMLエンコーディングをデフォルトに。
(あなたがそれに切り替えることができ一切レイザーコードは、デフォルトでエンコードしていないではないでしょうがあります)。

他のヒント

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

それだけでHTMLエンコードを行いますので、

は、このほかに、それは、誤った安心感を与えます。例えばこのスニペットを見てみます:

function myJavaScriptFunction()
{
    var message = '<%: Person.LastComment %>';
    alert(message);
}
それは適切なエンコードを使用しないため、それは、保存されていません。以下は安全です。

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

はるかに明示ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top