與此相關question我在我的ASP.NET MVC項目中使用XSS問題,並且與MvcHtmlSTring.ToHtmlString()方法混淆。從documentation「返回一個HTML編碼的字符串,表示當前對象。」,但它doesn't在我的情況下工作:MvcHtmlString.ToHtmlString()不對HTML進行編碼?
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\">");
mvcHtmlString
<SCRIPT/XSS SRC="htpp://ha.ckers.org/css.js">
的編碼<輸出的輸出 - - 這是我懷疑的行爲!
<SCRIPT/XSS SRC="htpp://ha.ckers.org/css.js">
我錯過了什麼嗎?
如果這只是一個文檔問題,ToHtmlString方法的目的是什麼?在我的例子中:調用「ToHtmlString()」方法和「ToString()」方法沒有區別 - 兩者都會輸出錯誤的未編碼HTML。 – 2012-03-21 10:23:45
這是[IHtmlString](http://msdn.microsoft.com/en-us/library/system.web.ihtmlstring.aspx)接口上的方法。它確實意味着「返回要插入到頁面中的HTML內容」 - 即,這是ASP.NET MVC 4將調用併發送結果而無需進一步編碼。我想這是因爲你可以在其他課上做一些不同的事情,但你說的沒錯。 – Rup 2012-03-21 10:32:56