1

次のようなHTML文字列を生成する場合

ViewBag.FinalHTML="<a href=\"http://stackoverflow.com\">StackOverFlow</a>";

次に、次のコードを使用してビューに表示してみます。

This is the best Q&A for programming questions: @ViewBag.FinalHTML

その場合、結果は次のようになります。

This is the best Q&A for programming questions: <a href="http://stackoverflow.com">StackOverFlow</a>

(私はそれを正しく行う方法を知っています。別の質問があります!)

ASP.Net MVCはどのように機能しますか?

4

1 に答える 1

5

この@関数は、HttpUtility.HtmlEncodeメソッドを使用して、渡されたすべてのものを安全にエンコードします。

この自動エンコードを実行したくない場合は、次の@Html.Raw方法を使用します。

@Html.Raw(ViewBag.FinalHTML)

明らかに、これを行うことにより、これFinalHTMLがユーザー入力から絶対に発生するのではなく、サーバー上で生成されることを確認する必要があります。そうでなければ、あなたはあなたのウェブサイトに巨大なXSSの穴を開けています。

于 2013-01-24T09:33:50.700 に答える