CSRF是什么?
CSRF(Cross Site Request Forgery),中文是跨站点请求伪造。CSRF攻击者在用户已经登录目标网站之后,诱使用户访问一个攻击页面,利用目标网站对用户的信任,以用户身份在攻击页面对目标网站发起伪造用户操作的请求,达到攻击目的.
CSRF攻击的本质原因
CSRF攻击是源于Web的隐式身份验证机制!Web的身份验证机制虽然可以保证一个请求是来自于某个用户的浏览器,但却无法保证该请求是用户批准发送的。CSRF攻击的一般是由服务端解决
CSRF漏洞原理:
因为web应用程序在用户进行敏感操作时(修改密码,转账等),没有校验token或者http请求头的referfer值,从而导致恶意攻击者利用用户身份(cookie)完成攻击行为.(简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。)
CSRF攻击的原理:
CSRF可以干什么:
1.盗取或修改账号
2.个人身份泄露以及财产安全
3.对用户的账号进行操作
-------
CSRF工具的防御手段:
1. 尽量使用POST,限制GET
2. 添加验证码(验证码,强制用户必须与应用进行交互,才能完成最终请求。在通常情况下,验证码能很好遏制CSRF攻击)
3.验证referer(HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,会带上Referer,通过验证Referer,可以判断请求的合法性,如果Referer是其他网站的话,就有可能是CSRF攻击,则拒绝该请求。)
4.使用token(这个Token的值必须是随机的,不可预测的。由于Token的存在,攻击者无法再构造一个带有合法Token的请求实施CSRF攻击。另外使用Token时应注意Token的保密性,尽量把敏感操作由GET改为POST,以form或AJAX形式提交,避免Token泄露)