首页 > 解决方案 > 纯静态站点可以进行 CSRF 保护吗?

问题描述

我有一个独立的单页 React 应用程序,它与一个单独的 API 应用程序进行数据通信。该应用程序完全是静态的(只有 HTML、JS、CSS 和图像),除了一个用于 CSRF 保护支持的小型 Express 服务器。该应用程序包含用户填写和提交的表格(通过 HTTP 请求提交)。

我真的很想摆脱对云服务器的直接依赖,而转向纯粹使用 S3 + Cloudfront 进行托管。这是完全可行的,因为所有资产都是静态的,我可以在部署时使 index.html 无效。我唯一的挂断是 CSRF 保护。

目前,我依赖 Redis 的 express-session 后端以及会话 cookie。CSRF 令牌被注入到服务器端呈现的索引路由中,该路由引导客户端 React 应用程序。

有没有一种安全(和现在一样安全)、可行的方法来拥有一个支持 CSRF 的纯静态站点?该应用程序将拥有对单独 API 服务的完全访问权限。

标签: node.jsreactjscsrf

解决方案


推荐阅读