加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – MvcHtmlString.ToHtmlString()不编码HTML?

发布时间:2020-12-16 04:22:25 所属栏目:asp.Net 来源:网络整理
导读:与此 question相关,我在ASP.NET MVC项目中使用XSS问题,并且与MvcHtmlSTring.ToHtmlString()方法混淆.从 documentation“返回一个代表当前对象的HTML编码字符串.”,但它在我的情况下不起作用: var mvcHtmlString = MvcHtmlString.Create("SCRIPT/XSS SRC="h
与此 question相关,我在ASP.NET MVC项目中使用XSS问题,并且与MvcHtmlSTring.ToHtmlString()方法混淆.从 documentation“返回一个代表当前对象的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">

输出编码< - 这是我怀疑的行为!

&lt;SCRIPT/XSS SRC=&quot;htpp://ha.ckers.org/css.js&quot;&gt;

我错过了什么?

解决方法

MvcHtmlString(或 HtmlString,或实现 IHtmlString的任何内容)用于字符串,应该逐字地发出HTML – 即通过使它成为MvcHtmlString,你告诉它你真的想要那些HTML标签.

不同之处在于使用<%:..%>将字符串发送到ASP.NET页面时(ASP.NET 4或更高版本中的新增功能).在这种情况下,ASP.NET引擎将为您自动HtmlEncode常规字符串(或任何不实现IHtmlString的字符串),而MvcHtmlString将以逐字/未编码的形式发送到页面中.

即我认为文件是错误的.有一个connect ticket在HtmlString构造函数文档中有相同的错误,他们确实修复了它. (我以为我提出了这样的说法: – /或许我的关闭是别人的副本?)我没有注意到MvcHtmlString文档也是错误的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读