CSRF攻击与防御(转)

转自:https://blog.csdn.net/xiaoxinshuaiga/article/details/80766369(源源作者连接失效,转载的第二任的)

 

用自己的话描述:

  以文中银行转账为例,CSRF攻击就是你登陆了A银行,所以你的浏览器上有登陆A银行网站需要的认证信息(cookies),你没有退出A银行网站,这时打开了B网站,B网站伪造了一个转账的请求(比如美女图片,你点击美女图片就会触发一次转账请求,由于没有退出A银行,所以这次请求会携带cookies,从而让A银行误以为是本人的正常操作,导致错误转账)。

  构造随机token,意思是正常请求A银行网页的时候,会返回一个正经网页,该正经网页会携带A银行网站随机生成的一个token过来,你只有点击这个正经网页的提交表单才能获取这个token并返回给A银行网站。假如在不退出登陆状态情况下打开B网站的网页,并且点击了这个不正经网页的美女图片,由于这个不正经网页中不含有token,所以,虽然这个 不正经网页能获取cookies,但是没法获取token,因为token只存在于正经网页中。

 

既然js能获取cookie,那么能否通过js获取csrf-token呢?

  获取到cookie中Token的值需要用到JavaScript,如果能使用JS获取Cookie中的值,那就涉及到另外一种漏洞:XSS跨站脚本攻击了。 CSRF劫持用户cookie,攻击者只能使用这个Cookie执行用户操作,但Cookie里面写的是什么,攻击者是看不到的。也就是说,js只能操作本站cookie,对于别的站点的cookie是操作不了的,除非使用xss跨站脚本攻击

 

posted @ 2019-05-27 22:47  olivertian  阅读(126)  评论(0编辑  收藏  举报