我是 Firebase 新手,正在尝试了解数据库规则。我正在使用 Firestore。
我有一个数据库,基本上需要所有用户读取,也需要写入。所有用户都可以查看数据库中的文档,并通过某些操作更改某些字段。在某些情况下,他们会删除某些旧的过期文档。
现在,我明白我不能让读写对所有人开放,因为这是不安全的。所以我使用身份验证,我将对用户进行匿名身份验证,以便只有经过身份验证的用户才能访问。
我明白这可以完成工作:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth.uid != null;
}
}
}
现在,我的问题是,这足够了吗?我不是黑客,所以我不完全知道黑客如何破解和删除/更改我的数据库中的内容,但这是否意味着只能通过使用该应用程序对数据库进行更改?如果有人不使用该应用程序,他们仍然可以破解这个程序,并以其他非法方式进行身份验证。
非常感谢您的帮助,我试图阅读以了解详情,但没有成功。
Firebase 安全规则无法限制对单个应用的访问。所有具有互联网连接的人都可以公开使用所有 API。它们都记录在这里:https://firebase.google.com/docs/reference/rest/auth https://firebase.google.com/docs/reference/rest/auth
Firebase 身份验证的目的是确保各个用户的个人访问得到适当的控制。一旦您允许用户使用匿名或电子邮件身份验证创建帐户,他们就可以按照这些规则完全访问数据库中的所有文档。因此,根据该词的大多数定义,您现在所拥有的并不是真正的“安全”。您必须决定这对于您的目的来说是否足够“安全”。
您还可能会收到来自 Firebase 的电子邮件,指出您的规则不安全。使用这不是一个好主意/{document=**}
像这样,它匹配所有文档,这可能不是您想要的。至少,您应该调出您希望用户访问的各个集合,而不是使用此全局通配符。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)