前后端分离下如何防御CSRF攻击

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前后端分离下如何防御CSRF攻击相关的知识,希望对你有一定的参考价值。

参考技术A 网上有很多关于防御CSRF攻击的文章,大都雷同。方法主要有三种:

第二种方法大都是通过在form中填充隐藏的csrf_token。这种方法适用于服务器端渲染的页面,对于前后端分离的情况就不太适用了。

针对前后端分离情况,我有两种方法。

浏览器通过javascript读取cookie中的Csrf_token,然后在发送请求时作为自定义HTTP头发送回来。

服务器读取HTTP头中的Csrf_token,与cookie中的Csrf_token比较,一致则放行,否则拒绝。

这种方法为什么能够防御CSRF攻击呢?
关键在于JavaScript读取cookie中的Csrf_token这步。由于浏览器的同源策略,攻击者是无法从被攻击者的cookie中读取任何东西的。所以,攻击者无法成功发起CSRF攻击。

以上是关于前后端分离下如何防御CSRF攻击的主要内容,如果未能解决你的问题,请参考以下文章

第712期前后端分离架构下CSRF防御机制

前后端分离模式下的安全解决方案

Security+前后端分离CSRF使用

71. Django 前后端分离csrf token获取方式

vue+flask前后端分离解决csrf token问题

前后端分离,解决跨域问题及django的csrf跨站请求保护