REST API仅可通过我的React客户端访问

Dirkx Senne:

我正在构建一个React.js应用程序,该应用程序将与我在Go中构建的REST API进行交互。

React将使用Javascript Fetch API将请求发送到我的API。

问题是我想保护我的API免受其他地方的要求。没有人应该可以直接通过URL或任何其他客户端(如Postman)直接访问我的API。

我知道JWT是什么,但这不能解决我的问题,因为任何人都可以通过浏览器访问令牌,然后继续使用令牌在React客户端之外请求API。

我已经进行了广泛的研究,但没有任何内容真正符合我的描述。

预先感谢您的帮助。

克里斯·希尔德(Chris Heald):

这是一个固有无法解决的问题。React在客户端上运行。客户端控制它执行的代码。因此,在其他客户端环境中,可以使用任何将API使用限制为仅React客户端的机制来发现和重用。您无法控制客户,并且如果回报足够有价值,则尝试这样做将被取消。

您可以尝试通过使用短期授权令牌来对其进行某种程度的强化,但是没有什么可以防止该令牌在另一个上下文中被劫持和重用。

如果必须限制对API的访问,则应该使用危险性或特权较低的公共API,并且公共API应该利用您的私有API,有效地代理调用以隐藏私有API,并确保仅针对特权更高的API执行经过验证的查询。

但是,如果您可以描述要解决的问题,那么可能还有其他解决方案可用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在基于Spring REST的客户端中访问通过wsdl公开的API

为什么vscode的扩展REST客户端可以访问我的api?

Laravel HTTP 客户端检索 REST API 访问令牌

通过REST API创建Keycloak客户端

Java REST API客户端

我如何将凭证从Rest客户端发布到Spring Security Rest API?

如何使用rest api从keycloak客户端注册中获取初始访问令牌?

使用服务帐户(客户端凭据授予)访问Keycloak REST Admin API

如何使用OAuth 2.0实施REST API以进行多个客户端访问

我应该为我的REST API的使用者使用客户端证书吗?

服务器如何知道通过PayPal客户端REST API确实付款?

Java的春天:实时状态更新客户端通过REST API

通过REST API取消订阅Firebase云消息传递客户端

无法通过Rest API从客户端Ajax POST请求接收数据

如何通过jersey rest客户端发布列表

Javafx SSL客户端配置消耗我的Spring Boot SSL安全的Rest Api

在客户端进行身份验证,如何现在保护我的Java Rest API?

Visual Studio无法在我的Rest API客户端中添加庞大的元数据文件

Web 客户端 API 和 Rest API

使 REST API 仅响应已知客户端

Microsoft Graph REST API无效的客户端机密

从REST API客户端返回通用swift对象

如何向客户端公开 REST api 微服务?

如何使用Websocket客户端监听Rest API

Visual Studio Mac中新的REST API客户端选项?

将 Azure 移动客户端用于 Rest API

解析REST API不返回客户端密钥

Spring WebFlux Web客户端-迭代分页REST API

客户端与Rest-API进行通信的JS框架