与此相关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