【问题标题】:HTML Rendering Escaped CharactersHTML 渲染转义字符
【发布时间】:2013-11-20 21:42:44
【问题描述】:

我目前正在努力解决我网站上的一个重大永久性 XSS 漏洞。为此,我呼吁:

    this.Title = System.Security.SecurityElement.Escape(this.Title);

在我输入的值上,它正确地转义了所有需要转义的字符(、& 等)。当我在页面的其他地方显示这个标题时,我的问题就出现了:

<p> @title </p>

完全按原样显示字符串,例如“&lt ;&gt ;, etc.”。

为了解决这个问题,我注意到如果我调用:

<p> @html.raw(title) </p>

这些值在页面上正确显示( 等)。但我担心这仍然会确保一个漏洞。将 html 正确呈现到页面上的最佳方法是什么?我做错什么了吗?还是我正确使用了 html.raw()?

【问题讨论】:

  • 您可能根本不应该调用Escape——只需让 Razor 自动编码您的输出即可。但是,如果我们假设应该使用Escape,那么是的,您正确使用了Raw
  • 只要输出是正确的 HTML 编码, < 就没有风险。 >等

标签: c# html asp.net security escaping


【解决方案1】:

您想按原样获取并存储标题。然后在输出时转义标题。

查看答案,例如html/XSS escape on input vs output

【讨论】:

    猜你喜欢
    • 2020-03-14
    • 2015-06-27
    • 1970-01-01
    • 2017-08-04
    • 2014-08-29
    • 2021-01-30
    • 2019-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多