【问题标题】:Hiding a third party API key using Server Proxy使用服务器代理隐藏第三方 API 密钥
【发布时间】:2020-08-23 22:04:15
【问题描述】:

我需要在我的客户端 JS 中使用第三方 API 调用,我知道一种方法是使用服务器代理(例如 www.myserver.com/getdata/),它可以调用 API 并返回结果到前端。我的问题是,即使我使用服务器代理,其他人也不能通过调用我的服务器代理而不是直接调用第三方来间接使用我的第三方 API 密钥。

【问题讨论】:

  • 是的,除非您的代理需要某种用户身份验证/现有登录会话。
  • 谢谢你的回答:)

标签: javascript api client-side-scripting


【解决方案1】:

我认为标题具有误导性,因此我将尝试回答正文中所述的问题。 是和否:他们可以间接使用第三方 API 密钥,但您可以完全控制他们可以看到的数据。您还可以在将用户输入交给第三方之前对其进行验证。想象一个支付 API:您真的想让用户控制您要向他们收取的金额吗?

换句话说:如果第三方的 API 密钥应该保密,那么将它放在客户端上可能不是一个好主意。

【讨论】:

  • 很抱歉,将更改标题。因此,澄清一下,我只将服务器所需的数据发送到客户端,这使得间接使用 API 密钥对其他人的用处不大。我对吗?他们仍然可以间接调用 API,但只会得到我发回的值。
  • 是的,特别是因为他们只能使用你提供的端点,不能用相同的密钥任意访问数据。但这真的取决于另一端的API。如果它已经是一个公开可用的 API,那么客户端和第三方 API 之间可能真的不需要服务器。
  • 每次 api 调用都要收费,所以我不得不求助于使用服务器代理。感谢您的帮助!
  • 是的。那将是一个好主意。您可能希望接受此答案,以便将其标记为已回答的问题
  • 完成。再次感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-23
  • 2019-03-20
  • 2023-01-20
  • 2019-04-16
  • 2014-10-02
  • 2017-03-12
相关资源
最近更新 更多