一个关于csrf的疑问
最近在学习csrf方面的东西,看了一些资料,提到的比较普遍的方法就是通过token,大体的思路是这样。
1. 用户请求页面A ----》2. 后台生成一个token,在request中放一份(这个是要带到页面上的),在session中放一份 --》3.返回页面A(页面A通过一个隐藏域接收request中的token) --》4. 填写表单 --》5.提交(这时会将隐藏域中的token提交到后台) --》6.后台校验页面提交的token和session中的token是否一致来判断合法性。
现在问题来了,如果用户在登录了以后又开了一个tab标签访问了一个钓鱼网站,这个钓鱼网站不也可以按着上面的流程走一遍了吗?这个时候token还有什么作用呢?比如说钓鱼网站里面有个iframe,它的src就是页面A的url,这个时候在这个iframe中不就有了A页面吗,这时通过js做一个提交不照样可以起到攻击的效果吗?