gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 10:01:23 25 4
gpt4 key购买 nike

与此相关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 文档也是错误的。

关于asp.net - MvcHtmlString.ToHtmlString() 不编码 HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9802144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com