Django DRF with React:如何获取CSRF cookie?

问题描述 投票:0回答:1

我有一个React前端,运行在 frontend.example.com 和Django后端,DRF运行于 backend.example.com. 我正在使用Django会话认证,我想正确地实现 CSRF保护.

以React登录页面 frontend.example.com/login 为例。这是用户第一次访问该页面。有一个包含用户和密码的表单,在提交时,会创建一个新的POST请求到Django后台。据我所知,CSRF token cookie应该已经包含在这个请求中了吧?

如何从Django后台获取CSRF令牌?我想在加载登录页面时,向Django后台发出GET请求,以获取CSRF令牌cookie。是这样做的吗,还是有其他最佳实践?

django reactjs django-rest-framework csrf
1个回答
1
投票

Django有一个AJAX请求和如何处理CSRF的部分。AJAX

使用这种方法,你应该为每个帖子请求反复发送令牌。另一种方法是使用CORS.在这种方法中,你只响应你已经列入白名单的域,头也是白名单。所以,你不需要获取和传递CSRF令牌,而是检查请求是否来自正确的域,然后你就可以响应它。并结合用户认证的令牌系统,你应该是好的。

如果你使用DRF,可以使用这个包来处理CORS。django -cors -headers

使用速率限制也可以帮助你避免垃圾邮件和机器人造成明显的伤害。

© www.soinside.com 2019 - 2024. All rights reserved.