html5中文学习网

您的位置: 首页 > 网络编程 > ASP.NET » 正文

ASP.NET WebForm中异步请求防止XSRF攻击的方法_.NET教程_编程技术

[ ] 已经帮助:人解决问题

在ASP.NET MVC中微软已经提供了如何防止跨域攻击的方法。对于传统Webfrom中使用Handler来接受ajax的Post请求数据,如何来防止XSRF攻击呢。这里给大家提供一个简单地方法,和MVC中类似。9RgHTML5中文学习网 - HTML5先行者学习网

 9RgHTML5中文学习网 - HTML5先行者学习网

1.首先需要在你的站点中安装如下的nuget包。可以手动复制dll。9RgHTML5中文学习网 - HTML5先行者学习网

Install-Package Microsoft.AspNet.WebPages -Version 2.0.207109RgHTML5中文学习网 - HTML5先行者学习网

最新版本的Razor是3.0的,安装WebPages的时候,它依赖于Razor,所以对于framework4.0的项目来说,无法安装WebPages最新版本。需要安装2.0版本。9RgHTML5中文学习网 - HTML5先行者学习网

安装完成后,增加了如下几个dll:9RgHTML5中文学习网 - HTML5先行者学习网

image9RgHTML5中文学习网 - HTML5先行者学习网

2.配置web.config,生成隐藏的token。9RgHTML5中文学习网 - HTML5先行者学习网

需要在system.web节点下增加如下配置:9RgHTML5中文学习网 - HTML5先行者学习网

<machineKey decryption="AES" validation="SHA1" decryptionKey="435D9CC99471D1E7C70FFEBA5EC71F28048BF9016605B82CC69B091FD317B294" validationKey="25C5D98CE093E77C2F886A6D8C6DA8FBC77CD764A1BF49E5D30CD123C5E19553"/>9RgHTML5中文学习网 - HTML5先行者学习网

配置好节点后,需要在.aspx页面的后台代码中增加一个Token生成字段,如果有基类,那么就可以把该部分添加到基类中。9RgHTML5中文学习网 - HTML5先行者学习网

image9RgHTML5中文学习网 - HTML5先行者学习网

我们增加了属性Token,然后使用AntiForgery.GetHtml()来生成一个隐藏的token。然后在页面中绑定该Token。9RgHTML5中文学习网 - HTML5先行者学习网

<form id="form1" runat="server">
  <%=Token %>
  <div>
  
  </div>
  </form> 9RgHTML5中文学习网 - HTML5先行者学习网

3.创建一个接收ajax请求的Handler,加入防止伪造页面提交的代码。9RgHTML5中文学习网 - HTML5先行者学习网

image9RgHTML5中文学习网 - HTML5先行者学习网

 9RgHTML5中文学习网 - HTML5先行者学习网

4.创建一个带有Token的Ajax请求。9RgHTML5中文学习网 - HTML5先行者学习网

image9RgHTML5中文学习网 - HTML5先行者学习网

 9RgHTML5中文学习网 - HTML5先行者学习网

这样就可以防止你的异步请求被XSRF攻击了。9RgHTML5中文学习网 - HTML5先行者学习网

PS:对于很多站点,会有子域名之类的,或者是一个Cookie多个站点共用,就容易出现懂点技术的用户跨站点去伪造请求。9RgHTML5中文学习网 - HTML5先行者学习网

微软开源了.net的很多代码,如果你想看上面的实现原理,那么可以去下载 代码查看。9RgHTML5中文学习网 - HTML5先行者学习网

image9RgHTML5中文学习网 - HTML5先行者学习网

9RgHTML5中文学习网 - HTML5先行者学习网
9RgHTML5中文学习网 - HTML5先行者学习网
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助