当前位置: 首页 > 知识库问答 >
问题:

如何在firebase托管中保护第三方API密钥?

董昕
2023-03-14

我在reactjs firestore项目中使用了不同的第三方API密钥。但我找不到在firebase主机中保护它们的方法。如何在firebase主机中隐藏这些API密钥?

例如,在Netlify托管服务中,它们提供环境变量功能,可用于保护API密钥。

也就是说,我可以将API密钥存储在netlify中的变量中,然后从那里检索,这将是安全的。

但在firebase我该怎么做?

我似乎找不到类似的设置,其中我可以将密钥存储为托管服务中的环境变量。

如果没有这样的功能,还有其他方法来保护这些API密钥吗?

对于Firebase API密钥,我已经阅读了一些答案,并理解Firebase API密钥不会被隐藏。

是否至少有一些方法可以将这些Firebase API密钥至少保护到一个安全的URL?(我知道编写安全规则是最好的方法,但我也在努力寻找其他选择)。

我似乎找不到一种方法来将firebase project API密钥的使用保护到一个安全的URL。

我试图找到保护API密钥的方法,但没有成功。

下面是我如何检索reactjs代码中的数据


axios.post(`https://data.retrieval.com/1/data?key=API_KEY`,  data)

我试图在生产代码中隐藏API_密钥

我想保护托管网站中的第三方API密钥。还将我的firebase project API密钥限制为仅一个安全URL。我现在不能这么做。有什么建议或解决方案吗?

谢谢你想帮忙也谢谢你抽出时间

共有2个答案

郎雅昶
2023-03-14

不确定这是否有帮助,但我的Firebase Cloud Function使用此功能。

  1. 创造你的秘密

firebase函数:配置:设置机密。API_KEY=“API密钥”

注意:这应该只用于服务器用例,而不是在客户端代码中。对于服务器,我指的是Firebase云功能或您的后端。

屠浩
2023-03-14

如果您在客户端代码中使用API密钥,恶意用户总是有可能找到密钥并滥用它。防止这种情况的唯一方法是不要在客户端代码中使用API密钥,或者拥有一个后端系统,该系统可以基于其他东西(如Firebase的服务器端安全规则)保护访问。

因为您的后端系统可能没有这样的安全模型,所以您通常必须将它们的API封装在您自己的中间件中,该中间件托管在一个受信任的环境中,例如您控制的服务器或云功能。然后,您可以通过设置自己的安全系统来确保对API的所有访问都得到授权。

 类似资料:
  • 如果不想设立自己的 Git 服务器,你可以选择将你的 Git 项目托管到一个外部专业的托管网站。 这带来了一些好处:一个托管网站可以用来快速建立并开始项目,且无需进行服务器维护和监控工作。 即使你在内部设立并且运行了自己的服务器,你仍然可以把你的开源代码托管在公共托管网站 - 这通常更有助于开源社区来发现和帮助你。 现在,有非常多的托管供你选择,每个选择都有不同的优缺点。 欲查看最新列表,请浏览

  • 我试图保护Spring BootAPIendpoint。我希望只传递api密钥和秘密作为头的一部分来调用api。我尝试了这个链接中发布的代码。但是在头中使用授权调用api时拒绝访问。使用API key和secret保护Spring Boot API我想知道我应该作为头部的一部分传递什么,这样我就可以从API获得成功的响应。我做了以下步骤:我在application.properties中添加了以下

  • 我想将我的firebase项目与一些第三方API集成,比如twitter API。 第三方API 以下代码将收听包含特定文本“小火箭人”的新推文: Firebase云函数 以下Firebase云函数侦听特定路由上传入的HTTP GET请求,并将数据保存回Firebase数据库: 问题 如何将从twitter客户端收到的推文写回firebase db?如果可能,我想在firebase云函数上运行所有

  • 我想保护Spring Boot API,使它只对具有有效API密钥和秘密的客户机是可访问的。但是,由于所有数据都是匿名的,程序内部没有身份验证(使用用户名和密码的标准登录)。我试图实现的只是所有API请求都可以仅用于特定的第三方前端。

  • 如何在客户端存储和保护私钥。 有什么方法可以保护JavaScript中的API密钥吗?。 我不能只是将它以纯文本形式放在那里,因为它可以被看到代码的其他人使用。那么,是否会有一个API保持秘密的实现呢?