Firebase 函数是存储 React 应用 API key 的安全位置吗?作为示例,请参阅以下 Firebase 云函数中的 axios API 调用模板:
编辑:添加文本代码片段。考虑到它是一个 Firebase 云函数,将 API key 直接存储在此代码段中是否安全的问题。
exports.getAlphaData = functions.https.onRequest((request, response) => {
const fetchAlphaData = async () => {
// Axios Call
const result = await axios(
'https://www.alphavantage.co/query?function=GLOBAL_QUOTE&symbol=SPY&XXXXXX',
);
// Expressjs Respond
response.send(result.data);
};
fetchAlphaData();
});
如果这个函数是在 React 应用程序中定义的,它将暴露我的 API key 。 React 官方文档和其他来源表示,切勿将 .env 文件用于敏感数据,因此我也为 key 保留了该方法。原始 API key 实际驻留在全栈应用程序中的最佳位置是哪里?
最佳答案
Firebase 可以使用 Google Cloud Platform 服务,您可以集成 GCP Secret Manager在使用此服务的功能上,您可以存储原始 key (这些将被加密)并通过您的代码功能检索,这带来的好处是您可以通过 Cloud IAM 限制访问和服务帐户。
这可以帮助您定义项目的哪些成员或哪些服务帐户可以访问 API key ( secret )
可以配置 secret 的权限,这样即使开发人员也无法看到生产环境 key ,assigning access permissions到 secret ,但允许该函数可以获取该 secret (因为与您的函数关联的服务帐户可以读取该 secret )。
在本文档中,您可以找到 code example关于如何使用 GCP Secret Manager
关于javascript - Firebase 函数和 API key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65127952/