首页 > 解决方案 > 使用 GoLang 后端反应 JS Rest API 安全性

问题描述

我已经用 GoLang 后端构建了一个 ReactJS 前端。ReactJS 使用 Rest API 从/向 Golang 后端请求/发送所有数据。

我对保护我的 API 请求的最佳方法感到很困惑,这样就不会以编程方式访问我的后端服务器并进行不希望的更改。任何建议将不胜感激。

我一直在探索 JWT 令牌和 CSRF 令牌,但由于我在 API 安全领域缺乏专业知识,我没有去任何地方如何在我的应用程序中准确地实现它。

关于我的申请的一些进一步细节是:

  1. 前端和后端服务器是分开的。
  2. 前端服务器使用 Nginx 来提供静态文件。
  3. 每次打开页面时都应该生成一个新的令牌,并且它的有效期应该不超过 8 分钟。

鉴于我的应用程序的结构,请向我建议保护我的其余 API 的最佳方法。

PS:此页面没有登录或任何其他机制可以确定用户的真实性。

标签: javascriptreactjsapiauthenticationgo

解决方案


我建议将 JWT 用于 API 安全性,因为您的令牌到期时间足够短。

  • https://github.com/dgrijalva/jwt-go --> 使用此包在后端生成令牌,并根据您的需要设置到期时间和声明。您的声明也可以基于角色进行精细控制(身份验证层)。
  • 将此令牌从登录或作为 API 网关的任何端点发送到您的前端。
  • 根据您在前端的意愿将令牌存储在本地存储/https cookie 中。
  • 每个需要保护的 API 调用都在标头中发送此令牌,使用上述库在后端验证此令牌。
  • 挑战将是在忘记或重置密码/注销时使这些令牌无效。您可以通过将它们保存在 redis/db 中并使用 cron 定期刷新它们来使用黑名单令牌技术。

推荐阅读