4

我正在使用 Giphy 的 API,目前有一个开发密钥。我正在寻找部署我的网站,但不知道它是面向公众的密钥还是私人密钥,并且无法在线找到答案,也无法直接询问他们。

4

3 回答 3

4

虽然我通常倾向于同意 Jay 的回答,但在查看了他们的介绍和特定的 javascript 示例之后,在我看来,这个密钥应该从浏览器中使用,因此它实际上是一个公钥。我假设在此过程的后期,为了避免滥用生产 API 密钥,它们可能只提供来自您与该密钥一起注册的域的请求。据我所知,开发密钥无论如何都是用于有限的测试目的,所以如果没有注册域,这不是问题。

于 2018-07-27T20:40:36.920 回答
2

以下是 GIPHY 对这个问题的官方回复:

GIPHY API 被设计为在客户端使用(因此也是 API 密钥)。您应该继续以这种方式使用它。开发完成后 - 请通过 Developer Dashboard 申请密钥的生产访问权限,这将消除与 beta 密钥相关的速率限制,因此您不必担心高流量。最后,也是最重要的 - GIPHY 有监控 API 密钥滥用的设置,如果发生任何事情,我们会与您联系。我们绝对不希望您担心。

从这里

看来应该不用担心了。

于 2021-02-05T05:03:46.520 回答
1

是的,任何 API 密钥都一样。

如果你泄露了你的 API 密钥并且它被恶意使用它的人滥用,你就上钩了。

这方面的一个很好的例子是人们将他们的 AWS 密钥泄露到 Github 并让它们被加密挖掘机器人自动抓取,这些机器人使用这些密钥来启动 EC2 实例并挖掘比特币等。

这里同样适用。如果您泄露了生产密钥,任何人都可以简单地将其从您的应用程序中复制出来并在他们的应用程序中使用。

处理生产 API 密钥的正确方法是使用Server Side Requests.

请求应遵循以下路径:

  1. 用户加载您的应用程序的客户端代码。
  2. 他们使用关键字向您的后端请求 GIF。
  3. 您在服务器端代码中解析关键字,向 Giphy 发出请求,使用户看不见,然后将图像数组返回给客户端。
  4. 在客户端显示您从后端收到的图像。

此中间人代码可防止任何人直接与您的 API 密钥进行交互。

于 2018-07-27T15:00:35.987 回答