Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否建议对Giphy API密钥保密?_Javascript_Giphy_Giphy Api - Fatal编程技术网

Javascript 是否建议对Giphy API密钥保密?

Javascript 是否建议对Giphy API密钥保密?,javascript,giphy,giphy-api,Javascript,Giphy,Giphy Api,我正在使用Giphy的API,目前有一个开发密钥。我希望部署我的站点,但不知道它是面向公众的密钥还是私人密钥,在网上或直接询问他们后都找不到答案。是的,任何API密钥都一样 如果你泄露了你的API密钥,并且被恶意使用它的人滥用,你就上钩了 一个很好的例子是,有人将AWS密钥泄漏到Github中,并让加密挖掘机器人自动抓取密钥,他们使用这些密钥启动EC2实例并挖掘比特币等 这一点在这里也适用。如果您泄漏了生产密钥,任何人都可以将其从您的应用程序中复制出来并在他们的应用程序中使用 处理生产API密钥

我正在使用Giphy的API,目前有一个开发密钥。我希望部署我的站点,但不知道它是面向公众的密钥还是私人密钥,在网上或直接询问他们后都找不到答案。

是的,任何API密钥都一样

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

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

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

处理生产API密钥的正确方法是使用
服务器端请求

请求应遵循以下路径:

  • 用户加载应用程序的客户端代码
  • 他们使用关键字向您的后端请求GIF
  • 您解析服务器端代码中的关键字,在用户看不见的地方请求Giphy,然后将图像数组返回给客户端
  • 在客户端中显示从后端接收的图像

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

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

    以下是GIPHY对这一问题的正式答复:

    GIPHY API设计用于客户端(因此也包括API密钥)。你应该这样做。一旦开发完成-请通过开发者仪表板申请密钥的生产访问权限,这将删除与测试密钥相关的速率限制,因此您不必担心高流量。 最后,也是最重要的一点——GIPHY已经监控了API密钥滥用的设置,如果发生任何情况,我们会联系您。我们绝对不想让你担心


    似乎不必担心。

    一般来说,如果API密钥是专门提供给您的用户帐户的,那么它应该是私有的。使用该密钥对api的请求应该来自您的帐户,而不是其他所有人。这至少与生产api键有关,而不是测试/沙盘键。您对此有参考资料吗?为什么上钩?我在Giphy没有付费账户,而且我似乎也不需要付费来获得“生产密钥”。为什么我要保护密钥?如果密钥被滥用,Giphy很可能会停用它,迫使您使用新密钥更新对所述密钥的任何引用(假设它们也会停用您的帐户和API密钥)。总的来说,这不值得这么麻烦。