【问题标题】:How to source control Firestore database security rules and update them automatically如何源代码控制 Firestore 数据库安全规则并自动更新它们
【发布时间】:2018-06-08 09:33:54
【问题描述】:

将Firestore安全规则保存在代码的源代码控制(Github)中是否谨慎?

此外,在克隆存储库和首次安装应用程序时自动部署安全规则的最佳方式是什么(对于开源项目而言)?在我的例子中,它是一个在 Android Studio 中使用 Gradle 构建的 Android 应用。

【问题讨论】:

  • 你可以用.gitignore过滤掉文件吗?
  • @chenrui 我当然可以,但这不是问题所在。我想知道我应该如何对这些规则进行源代码控制,以及在 github 存储库中对它们进行源代码控制是否安全。
  • 我猜你的问题更像是“公共访问存储库对私有安全控制文件的版本控制”?
  • @chenrui 说得对

标签: android firebase gradle firebase-security google-cloud-firestore


【解决方案1】:

Firebase 安全规则可能被认为比您的源代码存储库中的其他源代码更敏感。话虽如此,可以将它们与应用程序的其他源一起存储。如果您选择将应用程序的源代码托管在公共存储库中,那么您已经对公开应用程序的内部工作有了一定程度的了解。

可以提出一个论点,即公开您的 Firebase 资源的安全方式可以帮助不良行为者找到漏洞并利用您的应用程序,但对于应用程序的其余源代码也是如此。

虽然将安全规则存储在源代码库(即版本控制)中具有优势,但您可能需要考虑在 Firebase 控制台中配置规则。如果您打算设置持续集成和部署流程,这将不起作用。

您还可以考虑将安全规则存储在单独的私有存储库中,并利用 Firebase CLI 从该私有存储库自动部署,例如:

cd ../my-project-security-rules
firebase --project my-project deploy --only firestore:rules

您的 my-project-security-rules 存储库需要包含您的 firebase.json 配置文件的精简版本,例如:

{
  "firestore": {
    "rules": "firestore.rules",
    "indexes": "firestore.indexes.json"
  }
}

有关通过 Firebase CLI 进行部分部署的更多信息,请参阅 https://firebase.google.com/docs/cli/#partial_deploys

【讨论】:

    猜你喜欢
    • 2021-07-12
    • 2019-01-15
    • 2020-06-19
    • 1970-01-01
    • 2019-01-09
    • 2018-03-27
    • 1970-01-01
    • 2019-06-17
    相关资源
    最近更新 更多