使用firebase隐藏第三方API密钥

时间:2016-04-05 06:49:30

标签: javascript firebase firebase-security

我在firebase中建立了一个网站。它是一个简单的查找服务,只有一个输入元素可以向第三方api发出请求。

  

www.3rdparty.com/api/ [myapikey] /方法

问题在于,我每秒仅限x次请求,我无法向用户公开我的api-key。

我的任务最终是将响应存储在firebase中,以便限制到达第三方的请求数量(缓存功能)

1 个答案:

答案 0 :(得分:5)

将这样的API密钥放入应用程序的客户端代码会导致恶意用户将密钥用于自己的目的的风险。除了不将API密钥包含在客户端代码中之外,您无能为力。这同样适用于Android和iOS代码btw。

由于您无法将API密钥放在客户端代码中,因此您必须在服务器上运行它。这是在Firebase体系结构中使用服务器端代码的一种非常常见的情况:代码需要访问一些不能信任普通客户端的信息。我们blog post on common Firebase application architectures中的模式2涵盖了它。

从博客文章:

enter image description here

  

这种体系结构的一个例子是客户端为服务器放置任务以在队列中处理。只要有可用资源,您就可以让一个或多个服务器从队列中挑选项目,然后将结果放回Firebase数据库,以便客户端可以读取它们。