JavaScript-保护API密钥



我知道这是一个非常普遍的问题,并且已经写了很多。尽管在线阅读很多,但我找不到合适的解决方案。

我有一个完全公共的网站 - 没有登录/安全区域。整个网站都由API呼叫供电到各个第三方网站。该站点在前端使用反应。React需要进行API呼叫以为网站供电。

因此,问题是保护API键。

幼稚解决方案1。

React将API直接调用到第三方API- https://api.someservice.com/endpoint?keyke=api -key

显然这是不好的,因为它暴露了api键。

解决方案2。

每个人都建议在您自己的服务器上创建服务,并从那里向第三方呼叫API。这样,您就不必公开API-KEY。因此,React打电话给https://api.myserver.com/endpoint

此服务将致电第三方服务,并返回结果。问题是,其他人只能调用我的服务器上托管的端点并使用它 - 有效地使用我的API -KEY。

那么,问题是,我如何确保我(我的React应用程序(是唯一可以致电服务器上托管的API服务的人?

-----编辑其他信息。---

基本上显示了一张映射,其中包含覆盖的信息。当用户滚动地图时,API调用是异步的,并且与显示位置相关的信息被叠加到地图上。没有输入形式,没有提交,只是在用户导航地图时,只有恒定的异步API来调用。

我需要保护这些API呼叫。没有任何形式的表格,也没有任何形式的登录/身份验证。这个网站向所有人开放。

我与您遇到了同一问题,我打算做的是将dotnet core与水疗中心和服务器端渲染使用。就我而言,我正在使用Angular,但它们确实准备使用模板进行React Rect Redux。

使用此组合,您的React应用程序将在您的MVC应用程序中运行。这意味着您可以拥有一个只能从Local主持的请求(请记住您有SSR(,并且可以从该API控制器中获取请求,并且可以调用其他API。您的钥匙将是安全的,因为它们仅由您的C#控制器使用,这是您的中间人。信息的实际交换将在服务器之间进行

之间

(源(

最新更新