ASP.NET 4 で HTML エンコードをデフォルトで有効にすることはできますか?
-
25-09-2019 - |
質問
ASP.NET 4 では、新しい <%: ... %>
HTML エンコードされた文字列を出力する演算子。設定は可能ですか ASP.NET 4 (web.config内) <%= ... %>
演算子は文字列も HTML エンコードしますか?
解決
いいえ、幸います。
あなたはそれをこのように設定した場合、あなたの開発者は<%= ... %>
を使用してコードしないのが習慣に取得されます。
彼らはその後、別の(通常の)プロジェクトの作業は、彼らは彼らの出力をエンコードするために忘れてしまいます場合。
ASP.Netレイザーにはありませんそれは、この問題を持っていないので、HTMLエンコーディングをデフォルトに。
(あなたがそれに切り替えることができ一切レイザーコードは、デフォルトでエンコードしていないではないでしょうがあります)。
他のヒント
個人的に、私はこの新しい<%:
構文好きではありません。それははるかに明示的であるので、私はむしろ<%= HttpUtility.HtmlEncode(
を使用します。
は、このほかに、それは、誤った安心感を与えます。例えばこのスニペットを見てみます:
function myJavaScriptFunction()
{
var message = '<%: Person.LastComment %>';
alert(message);
}
それは適切なエンコードを使用しないため、それは、保存されていません。以下は安全です。
function myJavaScriptFunction()
{
var message = '<%: AntiXss.JavaScriptEncode(Person.LastComment) %>';
alert(message);
}
はるかに明示ます。
所属していません StackOverflow