【Web安全攻防从入门到精通】CSRF漏洞
CSRF漏洞
原理
攻击者给受害用户设计一段URL链接,这段链接就是一个请求。当受害者用户点击这个连接时,就会将自己的Cookie发送给服务器,用自己的权限帮助攻击者执行这个请求。
危害
- 敏感信息泄露
攻击者可以借助此漏洞执行管理员纵向越权操作
- 财产流失
如果网站应用支持转账操作,并存在CSRF漏洞,那么用户的钱可能会在毫无察觉的情况下被攻击者转移到攻击者的账户中。
- 流量劫持
通常用于流量劫持的CSRF漏洞会存在于路由器中,与蠕虫一起造成流量劫持。
防御
- Token防止
在正常的提交请求表单中添加一个隐藏输入,提交Token值。攻击者在伪造提交表单时无法获知这个值,故而伪造的提交请求不完整,无法通过服务器的验证。达到防止CSRF攻击的目的
- Refer检验
由于CSRF攻击大多是通过第三方网站发起的攻击,所以可以通过校验HTTP请求中默认自带的Refer字段,来判断是否为CSRF攻击,也可以使用Original Refer来校验。
因为这种验证方法完全依赖于浏览器,而Refer中的内容是可以被手动修改的,所以不能完全防止CSRF漏洞的产生。
- 验证码
CSRF攻击是用户在不经意间出发的,如果在用户提交请求之后以验证码(或者其他检验真人操作)的方式向用户确认是否为本人操作,即可避免CSRF的发生。