CSRF全称 Cross Site Request Forgery,跨站请求伪造。通俗理解:攻击者盗用当前用户身份,发请当前用户的恶意请求:如邮件,银行转账等。
CSRF原理
CSRF过程
登录网站A,生成本地Cookie信息;登录危险网站B,B获取网站A的内容,并向A发送请求操作,若成功,则CSRF过程成功。其中登录B网站,行为可以是点击网站A中的链接链接。
CSRF攻击实践
1.若网站A通过GET方式访问银行(假设)完成转账:http://www.bank.com/transfer.php?toBankId=3206&money=1000。如果是通过GET方式访问,授权信息存储在cookie中。
2.B页面中生成img标签,src设置为A页面中的转账链接:http://www.bank.com/transfer.php?toBankId=3206&money=1000,但toBankId改成黑客的的账号,因为登录信息在cookie中,在chrome,firefox等多页签浏览器中,同域名请求可以带上同域名的cookie内容
预防措施
1.随机参数
攻击者不能获得第三方的Cookie(理论上),A页面使用加密随机参数,在同一个会话范围内使用同一个加密随机参数,如md5("defenseSCRF" + new Date().getTime() + 3600),在第个请求中加入随机参数。
后台校验:getSession().get("stoken_name") == $pToken
2.验证码
转载一篇文章来凑够200字数~~
原文链接:http://haiyupeter.iteye.com/blog/1842780
最后:
很简单,看我粉丝数及这篇文章的推荐数就明白喽!
嘟嘟你不禁用首页JS就算了,总得加上token吧!