これに関連するquestion私はASP.NET MVCプロジェクトでXSSの問題を抱えています。私はMvcHtmlSTring.ToHtmlString()メソッドと混同しています。 documentationから「現在のオブジェクトを表すHTMLエンコードされた文字列を返します」、それは私の場合は仕事doesn't:mvcHtmlStringMvcHtmlString.ToHtmlString()はHTMLをエンコードしていませんか?
<SCRIPT/XSS SRC="htpp://ha.ckers.org/css.js">
<をエンコードの出力の
var mvcHtmlString = MvcHtmlString.Create("<SCRIPT/XSS SRC=\"htpp://ha.ckers.org/css.js\">").ToHtmlString();
var encoded = HttpUtility.HtmlEncode("<SCRIPT/XSS SRC=\"htpp://ha.ckers.org/css.js\">");
出力を - - これは私が疑う行動です!
<SCRIPT/XSS SRC="htpp://ha.ckers.org/css.js">
私は何かを見逃しましたか?すなわちMvcHtmlStringあなたが実際にこれらのHTMLタグをしたいということを言っていることを行うことで -
ドキュメントの問題のみなら、ToHtmlStringメソッドの目的は何ですか?私の例では、 "ToHtmlString()"メソッドと "ToString()"メソッドを呼び出す間に違いはありません。どちらもエンコードされていない悪いHTMLを出力します。 –
[IHtmlString](http://msdn.microsoft.com/en-us/library/system.web.ihtmlstring.aspx)インターフェイスのメソッドです。これは実際には「ページに挿入するHTMLコンテンツを返す」ことを意味します。つまり、これはASP.NET MVC 4が呼び出してさらにエンコードすることなく結果を出力することを意味します。私は他のクラスでは違うことをすることができると思いますが、違いはありません。 – Rup