Swift:Firebase:如何确保除了我的应用程序之外没有人可以访问我的数据库
Swift: Firebase: How to ensure no one can access my db except my app
我的 Swift iOS 应用仅使用 Firebase 匿名登录。我担心我的 Firebase 数据库的安全性,因为显然任何人都可以访问或删除我的数据(通过浏览器等?)。
如何保护我的数据库,以便只有我的 iOS 应用程序可以访问它?
我原以为 Firebase 仪表板允许生成一个 API 密钥,我可以将其嵌入到我的应用程序中,但事实似乎并非如此。
You need to write security rules.
任何人都可以看到您的 URL,但安全规则是您决定 谁 可以访问 什么 条数据的方式.
这些规则就像数据结构上的注释一样,指定必须满足哪些约束才能允许读取或写入。
假设您想要保护您的数据库,以便只有经过身份验证的用户才能访问该数据库。这些是实时数据库的默认规则。
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}
auth
变量是一个服务器端值,用于存储当前经过身份验证的用户。该规则检查该变量是否具有值并因此包含登录用户。
I would have expected that the Firebase dashboard allow to generate an
API key which I can embed in my app, but that does not seem to be the
case.
Firebase 控制台会给您一个密钥,无论规则如何,您都可以完全访问。但是,如果您将它嵌入到您的应用程序中,那么它就不再安全了。这就是您使用身份验证的原因,因为这会针对特定登录用户的密钥创建令牌。
我的 Swift iOS 应用仅使用 Firebase 匿名登录。我担心我的 Firebase 数据库的安全性,因为显然任何人都可以访问或删除我的数据(通过浏览器等?)。
如何保护我的数据库,以便只有我的 iOS 应用程序可以访问它?
我原以为 Firebase 仪表板允许生成一个 API 密钥,我可以将其嵌入到我的应用程序中,但事实似乎并非如此。
You need to write security rules.
任何人都可以看到您的 URL,但安全规则是您决定 谁 可以访问 什么 条数据的方式.
这些规则就像数据结构上的注释一样,指定必须满足哪些约束才能允许读取或写入。
假设您想要保护您的数据库,以便只有经过身份验证的用户才能访问该数据库。这些是实时数据库的默认规则。
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}
auth
变量是一个服务器端值,用于存储当前经过身份验证的用户。该规则检查该变量是否具有值并因此包含登录用户。
I would have expected that the Firebase dashboard allow to generate an API key which I can embed in my app, but that does not seem to be the case.
Firebase 控制台会给您一个密钥,无论规则如何,您都可以完全访问。但是,如果您将它嵌入到您的应用程序中,那么它就不再安全了。这就是您使用身份验证的原因,因为这会针对特定登录用户的密钥创建令牌。