CSRF攻击简单介绍与相应防护措施

本文介绍了CSRF(跨站请求伪造)攻击的概念及其工作原理,并详细解释了如何通过添加Token验证等手段来防御此类攻击。

什么是CSRF

跨站请求伪造(英语:Cross-site request forgery),也被称为one-click attack 或者session riding,通常缩写为CSRF 或者XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。

CSRF攻击原理

1、用户User浏览并信任网站WebA,WebA通过验证在User处产生Cookie。

2、User在没有登出WebA的情况下访问危险网站WebB,WebB引导User访问WebA并发出一个Requset请求。

3、浏览器根据WebB的请求带着之前产生的Cookie访问WebA,WebA接收到请求进行处理,这时WebB就达到了模拟用户请求WebA的目的。

基本防护措施

1、客户端与服务端以POST方式传输

2、服务端验证HTTP Referer字段

3、使用验证码

4、不通过form发送数据,如:Ajax发送Json数据,Ajax本身限制跨域请求,很大可能的避免CSRF攻击

5、添加Token验证

在表单中添加服务端随机生成的Token,提交后服务端进行Token验证。由于Token的存在,攻击者无法再构造一个带有合法Token的请求实施CSRF攻击(前提是网站无XSS泄露问题,所以一般结合XSS防御一起使用)。

总结

以上罗列了防御CSRF攻击常见的一些方式,其中最常见的是添加Token验证的方式,同时要注意Token的保密性和随机性。这种方式可能也会出现相应的问题如:多个表单页或多个tab页提交时Token相互覆盖的问题,这时候就该对应改变生成Token的策略。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值