![]() |
1
3
如果您试图保护agains跨站点脚本,那么无论如何都应该在服务器上执行,因为可以很容易地绕过客户端验证。 |
![]() |
2
2
据我所知,您正在注入的数据是通过客户端调用接收的,而不是在服务器端构建页面时接收的。在这种情况下,你可以替换
不管你做什么,我真的推荐看菲尔·哈克和斯科特·汉斯曼的这段视频 http://live.visitmix.com/MIX10/Sessions/FT05 . 它们展示了使用XSS和csr攻击网站的不同方法,以及保护自己的方法——正是您所需要的:) |
![]() |
3
0
你用的是什么版本的MVC?我不确定我是否理解完整的上下文,所以我将尝试从多个角度来覆盖它(对于我能想到的场景,肯定还有更多)。对于MVC 2,您有了新的支持:<%;Model.FirstName%>对数据进行编码,这与MVC 1中的<%=Html.encode(Model.FirstName)%>等价。 您应该能够在视图中的JS中执行此操作,如:
我以为我做了。。。如果没有其他选择的话。有一个客户端使用JS escape和unescape进行编码,但它的编码/解码方式与服务器不同。。。你自己试试看,会用%20和其他的改变来代替空格。 最后,JQuery可以使用$.get(“/controller/action”,function(data){/*data here*/}调用服务器操作方法,您可以使用该方法进行编码,但效率很低。 哦。 |
![]() |
4
0
您可以使用ASP.NET内置实用程序 var消息='欢迎,@Ajax.JavaScriptStringEncode(ViewBag.UserName)!'; 或者你可以使用反XSS库 var消息='欢迎,@Encoder.JavaScriptEncode(ViewBag.UserName,false)!'; |