CSRF Token

作者: 李书文 | 来源:发表于2019-02-13 14:21 被阅读0次

起因

前端页面要用Vue重写,导致原有的CSRF Token的方式并不好用了。为什么不好用?因为原有的方案是后端渲染,向前端输出CSRF Token。而且,大多数请求都是原生的Form Submmit来做的。而用Vue后,使用的是前端渲染,后端只负责输出数据,这样的话CSRF Token要是随着每一次请求都发送出去,感觉很不好。

解决

用Vue重写后,所有的Form提交都是用Ajax来做的,避免了由原生Form做提交。所以,对于每一个请求,都可以在提交前,统一写入CSRF Token。那么接下来的问题就是前端如何获取CSRF Token?

方法如下

Token被用户端放在Cookie中(不设置HttpOnly),同源页面每次发请求都在请求头或者参数中加入Cookie中读取的Token来完成验证。CSRF只能通过浏览器自己带上Cookie,不能操作Cookie来获取到Token并加到http请求的参数中。所以CSRF本质原因是“重要操作的所有参数都是可以被攻击者猜测到的”,Token加密后通过Cookie储存,只有同源页面可以读取,把Token作为重要操作的参数,CSRF无法获取Token放在参数中,也无法仿造出正确的Token,就被防止掉了
作者:匿名用户
链接:https://www.zhihu.com/question/21385375/answer/208281970
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

这个方法正好符合需求,问题解决。

后记

还有一篇不错的文章来介绍CSRF Token的,值得一读。

相关文章

网友评论

    本文标题:CSRF Token

    本文链接:https://www.haomeiwen.com/subject/xcuixqtx.html