我目前正在努力解决我网站上的一个主要永久性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()?