如何避免ASP.Net(MVC)中的XSS漏洞?
我最近注意到我的应用程序中有一个大漏洞,因为我做了如下操作:如何避免ASP.Net(MVC)中的XSS漏洞?,asp.net,asp.net-mvc,xss,Asp.net,Asp.net Mvc,Xss,我最近注意到我的应用程序中有一个大漏洞,因为我做了如下操作: <input type="text" value="<%= value%>" /> 我知道我应该使用Html.Encode,但有没有办法对所有值都这样做,而不必显式地这样做?在ASP.Net 4.0或更高版本中,始终使用而不是。。。它为您进行HTML编码 完成这项工作后,对代码进行grep非常简单,因为有几种方法: 使用ASP.NET MVC2/.NET 4.0中的语法。(这只是Html.Encode
<input type="text" value="<%= value%>" />
我知道我应该使用
Html.Encode
,但有没有办法对所有值都这样做,而不必显式地这样做?在ASP.Net 4.0或更高版本中,始终使用而不是。。。它为您进行HTML编码
完成这项工作后,对代码进行grep非常简单,因为有几种方法:
- 使用ASP.NET MVC2/.NET 4.0中的
语法。(这只是
的语法糖)Html.Encode()
- 按照使用Anti-XSS库作为ASP.NET的“默认”编码引擎的详细说明进行操作
潜在危险的HTML标记: 虽然不是详尽的列表,但以下常用HTML标记可能允许恶意用户注入脚本代码:
<applet>
<body>
<embed>
<frame>
<script>
<frameset>
<html>
<iframe>
<img>
<style>
<layer>
<link>
<ilayer>
<meta>
<object>
攻击者还可以通过如下所示更改MIME类型,使用标记插入脚本
<style TYPE="text/javascript">
alert('hello');
</style>
警惕(“你好”);
我们在三秒钟内回答了对方的问题。您好,纽曼。您可能希望使用白名单方法而不是黑名单方法。还可以考虑诸如<代码> OnCase< /COD>、<代码> OnBurr < /代码>和<代码> OnHuff等属性。
<style TYPE="text/javascript">
alert('hello');
</style>