我的Swift iOS应用仅使用Firebase匿名登录。我担心我的Firebase数据库的安全性,因为显然任何人都可以访问或删除我的数据(通过浏览器等?)。
如何保护我的数据库,以便我的iOS应用只能访问它?
我原本希望Firebase信息中心允许生成我可以嵌入我的应用中的API密钥,但似乎并非如此。
答案 0 :(得分:1)
<强> You need to write security rules. 强>
任何人都可以看到您的网址,但安全规则是您指示谁可以访问 数据的方式。
这些规则就像对数据结构的注释一样,并指定必须满足哪些约束才能允许读取或写入。
假设您要保护数据库,以便只有经过身份验证的用户才能访问数据库。这些是实时数据库的默认规则。
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}
auth
变量是存储当前经过身份验证的用户的服务器端值。该规则检查该变量是否具有值,因此包含登录用户。
我原本希望Firebase仪表板允许生成 我可以嵌入我的应用程序的API密钥,但似乎不是 情况下。
Firebase控制台会为您提供密钥,无论规则如何,都可以为您提供完全访问权限。但如果你将它嵌入你的应用程序,那么它就不再安全了。这就是您使用身份验证的原因,因为这会针对特定登录用户的密钥创建令牌。