你如何避免ASP.Net(MVC)中的XSS漏洞?

tgh*_*ghw 19 asp.net xss asp.net-mvc

我最近注意到我的应用程序中有一个很大的漏洞因为我做了类似的事情:

<input type="text" value="<%= value%>" />
Run Code Online (Sandbox Code Playgroud)

我知道我应该使用过Html.Encode,但有没有办法为所有值做到这一点,而不必明确地做到这一点?

Geo*_*ker 22

有几种方法:

  • 使用<%: %>ASP.NET MVC2/.NET 4.0中的语法.(这只是语法糖Html.Encode())
  • 按照Phil Haack的说明进行操作,详细说明使用Anti-XSS库作为ASP.NET的"默认"编码引擎.


Bra*_*adB 9

观看Scott Hanselman和Phil Haack的视频.它们涵盖了XSS,CSRF,JSON Hijacking,特别是ASP.Net MVC.


Joe*_*sky 7

在ASP.Net 4.0或更高版本中,始终使用<%:...%>而不是<%= ...%> ...它会为您执行HTML编码.

Scott Gu的解释.

完成后,作为安全预防措施,定期grep您的代码<%=非常简单.

另外,您使用的是Microsoft Anti-XSS库吗?

  • 我们在三秒内回答了他们.你好,纽曼. (4认同)