CSRF与Cookie

【背景知识】

Cookie分为2种:

临时cookie,没有expire-day,浏览器打开网页得到,关闭网页销毁。

本地cookie,有expire-day,浏览器打开网页得到,生命期结束后才销毁,不论网页是否关闭。


浏览器同时打开了A页面和B页面(二者不同域名),A页面中有B页面的资源C。

所以用户打开A页面时,会请求B页面中的资源C,发给B的数据包中就带有临时cookie,有些浏览器甚至包括本地cookie,比如FF2,FF3,Opera,Chrome,Android等。


【攻击原理】

1. 假设A也是恶意网站,A构造对资源C的请求时可以是一次恶意操作。

2. 用户访问B时已经得到了授权Cookie。

3. 用户访问A,就被发送了一次恶意操作。因为用户在访问B时携带了Cookie,被浏览器认为是正常授权操作,导致用户被执行了A的恶意操作。

这便是CSRF。


【注意】

其中Cookie作为凭证并不是必须的,那样CSRF执行起来更简单了,都不需要上述的第2步骤。


【防护】

1. Referer检测,如果Referer来自于A,B检测Referer不是B则判定为CSRF。

2. 加Token,用户先访问B得到一个隐藏在表单中的Token,用户执行操作时,会在在参数中携带Token。B检测Token有误则判定为CSRF。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值