在过去的几天里,我一直在阅读有关 CSRF 的内容,感觉我已经很好地掌握了它是什么以及如何预防它。我正在构建一个小型 Express/React 应用程序,它将有一个用于更新应用程序内容的安全管理区域,并且我希望它能够免受 CSRF 的影响。
据我所知,服务器生成 CSRF 令牌然后将其与请求的视图(页面)一起发送到客户端(然后可以将令牌隐藏在 HTML 表单输入标记中)是很常见的。但是,我的 Express API 不提供 HTML 服务,它是一个仅返回 JSON 数据的 REST API。UI 是用 React 构建的,运行在与服务器不同的端口上。
我的问题是;在哪里安全地存储服务器上生成的令牌?
例如,如果我通过点击“/api/login”以管理员身份登录,生成令牌,并在 API 响应中将其发送回客户端,那么我现在应该如何处理它?
最初的计划是使用 Redux 来存储 token,但是阅读这篇文章Is Redux secure? ,这听起来并不理想。
我考虑过使用 React 环境变量,但也了解到这些变量在构建中公开。
显然 localStorage 也是一个坏主意......
我真的很难使用我正在实现的工具(即 Express/React)找到这个问题的解决方案
任何帮助、链接、建议、批评将不胜感激,我想学习构建考虑到安全性的应用程序
一只甜甜圈
相关分类