私は AntiXSS (4.3.0) を使い始めたばかりで、主にここで@Encoder.JavaScriptEncode
説明されているように使用します。
Nuget から AntiXSS をインストールし、Web.config に追加encoderType="Microsoft.Security.Application.AntiXssEncoder, AntiXssLibrary"
しました。<httpRuntime
私の見解では、次の行があります(<script>
タグ内):
var userId = @Encoder.JavaScriptEncode(User.Identity.GetUserId());
私が出力することを期待するもの
var userId = 'user-id';
代わりに出力します:
var userId = 'user-id';
これは、Razor が HTML をサニタイズしようとしていて、単一引用符を としてエンコードしているためだと思います'
。
解決策は、それを でラップすることですHtml.Raw()
が、私がフォローしていた投稿では、彼はそれを決して行いません (代わりに、Javascript 内ですべてを一重引用符で囲みます)。
私の質問は - に電話する必要@Html.Raw(Encoder.JavaScriptEncode(data))
があるのですか、それとも私の設定に何か問題がありますか?
ありがとう!