我有一个由 React 在我的网站上创建的联系表单。它向公众开放,不需要人们登录。在我的网站中,我已经为那些需要人们登录的 API 端点实施了 JWT 令牌。使用这些 API 需要人们登录,我将在人们登录后拥有一个令牌,然后在每个 API 请求中提供一个 JWT 令牌。但是,由于此表单向公众开放,不需要用户登录,因此我无法从登录中获取CSRF的令牌。如何使表单请求安全?
首先,您可能有兴趣在这里阅读类似的问题:https://security.stackexchange.com/questions/170388/do-i-need-csrf-token-if-im-using-bearer-jwt
长话短说:
CSRF令牌(实际上是反CSRF令牌(旨在处理用户会话保存在cookie中的问题。Cookie 始终会自动附加到您的浏览器发出的每个请求中。当您访问恶意站点时,这是一个问题,该站点向您已登录的站点发出请求。
如果您将带有自己逻辑的 JWT 令牌附加到每个单独的请求,那么您就很好,并且不需要额外的令牌来防止 CSRF。