我正在构建一个 React.js 应用程序,它将与 Go 中内置的 REST API 进行交互。React 将使用 Javascript Fetch API 向我的 API 发送请求。问题是我想保护我的 API 不被其他地方请求。任何人都不应该能够通过 URL 或通过 Postman 等任何其他客户端直接访问我的 API。我知道 JWT 是什么,但这并不能解决我的问题,因为任何人都可以通过浏览器访问令牌,然后继续使用令牌在 React 客户端之外请求 API。我进行了广泛的研究,但没有什么真正符合我的描述。非常感谢您的帮助,提前。
1 回答
浮云间
TA贡献1829条经验 获得超4个赞
这是一个本质上无法解决的问题。React 在客户端上运行。客户端控制它执行的代码。因此,您用来将 API 使用限制为仅适用于 React 客户端的任何机制都可以在其他客户端上下文中发现和重用。你无法控制客户,如果回报足够有价值,那么这样做的尝试就会失败。
您可以尝试通过使用短期授权令牌来稍微强化它,但是没有什么可以阻止该令牌在其他上下文中被获取和重用。
如果您必须限制对 API 的访问,您应该拥有一个危险性或特权较小的公共 API,并且公共 API 应该利用您的私有 API,有效代理调用以隐藏私有 API,并确保仅针对特权更高的 API 执行经过验证的查询。
不过,如果您可以描述您正在尝试缓解的问题,则可能还有其他可用的解决方案。
- 1 回答
- 0 关注
- 102 浏览
添加回答
举报
0/150
提交
取消