HTML呈现转义字符

时间:2013-11-20 21:42:44

标签: c# html asp.net security escaping

我目前正在努力解决我网站上的一个主要永久性XSS漏洞。为此,我打电话给:

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

关于我正在接受的值,它正确地逃脱了所有需要转义的字符(<,>,&等)。当我在页面的其他地方显示此标题时,我的问题出现了:

<p> @title </p>

显示字符串与其显示的完全相同,例如“&amp; lt;&amp; gt;等”。

要解决这个问题,我注意到如果我打电话:

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

值正确显示在页面上(&lt;,&gt;等)。但我担心这仍然可以确保一个漏洞。将html正确呈现到页面上的最佳方法是什么?我做错了吗?或者我正确使用html.raw()?

1 个答案:

答案 0 :(得分:1)

你想拍摄并存储标题。然后你在输出时转义标题。

见例如答案html/XSS escape on input vs output