我正在构建一个React.js应用程序,该应用程序将与我在Go中构建的REST API进行交互。
React将使用Javascript Fetch API将请求发送到我的API。
问题是我想保护我的API免受其他地方的要求。没有人应该可以直接通过URL或任何其他客户端(如Postman)直接访问我的API。
我知道JWT是什么,但这不能解决我的问题,因为任何人都可以通过浏览器访问令牌,然后继续使用令牌在React客户端之外请求API。
我已经进行了广泛的研究,但没有任何内容真正符合我的描述。
预先感谢您的帮助。
这是一个固有无法解决的问题。React在客户端上运行。客户端控制它执行的代码。因此,在其他客户端环境中,可以使用任何将API使用限制为仅React客户端的机制来发现和重用。您无法控制客户,并且如果回报足够有价值,则尝试这样做将被取消。
您可以尝试通过使用短期授权令牌来对其进行某种程度的强化,但是没有什么可以防止该令牌在另一个上下文中被劫持和重用。
如果必须限制对API的访问,则应该使用危险性或特权较低的公共API,并且公共API应该利用您的私有API,有效地代理调用以隐藏私有API,并确保仅针对特权更高的API执行经过验证的查询。
但是,如果您可以描述要解决的问题,那么可能还有其他解决方案可用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句