在反应应用程序中保护 Firebase API 密钥以使其无法公开访问的最佳方法是啥? [复制]
Posted
技术标签:
【中文标题】在反应应用程序中保护 Firebase API 密钥以使其无法公开访问的最佳方法是啥? [复制]【英文标题】:What is the best way to secure Firebase API keys in a react app so it is not accessible publicly? [duplicate]在反应应用程序中保护 Firebase API 密钥以使其无法公开访问的最佳方法是什么? [复制] 【发布时间】:2020-08-19 08:38:30 【问题描述】:我目前有一个使用 Firebase 身份验证的 React 应用程序,并使用 Firestore 作为数据库。
我目前使用 Amazon 的 Amplify 服务部署了该应用程序。我的 Firebase API 密钥,包括数据库 URL 和 firebase 应用程序 ID,都作为环境变量添加到 AWS 控制台中。
当我检查公共包时,我可以看到所有 API 密钥都是公共的。
我的问题是:
这听起来对吗? 是否有处理这种情况的最佳实践? 我是否需要构建一个后端来处理这个问题?【问题讨论】:
【参考方案1】:您的 API 密钥、数据库 URL、应用 ID 等都是公开的。
根据firebase docs:
内容被视为公开内容,包括您的平台特定 ID (在 Firebase 控制台设置工作流程中输入)和值 特定于您的 Firebase 项目,例如您的 API 密钥、实时 数据库 URL 和存储桶名称。鉴于此,使用安全规则 保护您在实时数据库、Cloud Firestore 中的数据和文件, 和云存储。
您要确保与 Firebase 的连接安全的方式是使用 security rules。您可以添加自定义规则以确保您的数据库是安全的。
例如:您可以确保只有 userId 12345 有权创建、读取、更新和删除 userId12345 的记录。
【讨论】:
以上是关于在反应应用程序中保护 Firebase API 密钥以使其无法公开访问的最佳方法是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
在客户端级别(而非最终用户级别)保护 Firebase REST API