CRSF攻击原理解析

CRSF全称 Cross Site Request Forgery,跨站请求伪造。通俗理解:攻击者盗用当前用户身份,发请当前用户的恶意请求:如邮件,银行转账等。

CRSF原理

CRSF攻击原理解析_第1张图片


CRSF过程
登录网站A,生成本地Cookie信息;登录危险网站B,B获取网站A的内容,并向A发送请求操作,若成功,则CRSF过程成功。其中登录B网站,行为可以是点击网站A中的链接链接。

CRSF攻击实践
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.验证码

参考:http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html

你可能感兴趣的:(JavaScript)