【问题标题】:Is it recommended to keep a Giphy API key secret?是否建议对 Giphy API 密钥保密?
【发布时间】:2019-01-04 17:19:57
【问题描述】:

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

【问题讨论】:

  • 一般来说,如果 API 密钥是专门为您的用户帐户提供的,它应该保密。使用该密钥对 api 的请求应该来自您的帐户,而不是其他所有人。这至少与生产 api 密钥有关,而不是测试/沙密钥

标签: javascript giphy giphy-api


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    From here

    看来不用担心。

    【讨论】:

      【解决方案3】:

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

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

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

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

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

      请求应遵循以下路径:

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

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

      【讨论】:

      • 你有这个参考吗?上钩干什么?我没有 Giphy 的付费帐户,而且我似乎不需要付费即可获得“生产密钥”。我为什么要注意保护密钥?
      • 如果密钥被滥用,Giphy 很可能会停用它,迫使您使用新的密钥更新对所述密钥的任何引用(假设他们还与 API 密钥一起停用您的帐户)。总的来说,这不值得麻烦。
      猜你喜欢
      • 1970-01-01
      • 2011-08-25
      • 1970-01-01
      • 2019-03-29
      • 2018-07-17
      • 1970-01-01
      • 2018-06-09
      • 2013-03-23
      • 2020-04-15
      相关资源
      最近更新 更多