Reactjs firebase规则集如何保护数据库?
如果我启用了身份验证,并且某人使用正在使用的登录方法进行了身份验证,这是否意味着他仍然可以在浏览器控制台中操作我的数据库?或者仅当firebase在全球范围内暴露时?我特别询问react js开发 如果您这样设置规则:Reactjs firebase规则集如何保护数据库?,reactjs,firebase,firebase-realtime-database,firebase-authentication,firebase-security,Reactjs,Firebase,Firebase Realtime Database,Firebase Authentication,Firebase Security,如果我启用了身份验证,并且某人使用正在使用的登录方法进行了身份验证,这是否意味着他仍然可以在浏览器控制台中操作我的数据库?或者仅当firebase在全球范围内暴露时?我特别询问react js开发 如果您这样设置规则: { "rules": { ".read":true , ".write": true } } 它只是意味着任何人都可以读写数据库。这并不意味着他们可以访问数据库所在的firebase控制台。而且这也不意味着如果他们使用firebase数据库url,那么他们就可以访
{
"rules": {
".read":true ,
".write": true
}
}
它只是意味着任何人都可以读写数据库。这并不意味着他们可以访问数据库所在的firebase控制台。而且这也不意味着如果他们使用firebase数据库url,那么他们就可以访问您的数据库-他们不能,因为数据库与您的帐户关联
只有对您的帐户具有访问权限的人才能进入firebase控制台,并在控制台中更改规则和/或您的数据库
作为测试,注销您的帐户,获取firebase数据库url,并将其输入上面的url
,然后查看您是否能够访问它
上述规则的一个例子:如果你的网站中有一个登录屏幕,那么即使使用上述规则,用户也不能仅仅登录,因为在你的代码中,你指定了他必须注册,然后才能登录,如果他的信息在数据库中
假设您使用了以下规则:
{
"rules": {
".read":auth!=null,
".write": auth!=null
}
}
这意味着在数据库中读写用户必须经过身份验证才能做到这一点
这些规则只是用来确定用户可以做什么但是没有人能够访问您的控制台
编辑:
如果您使用此选项:
{
"rules": {
".read": true,
".write": false,
}
}
然后,没有人可以向数据库写入任何内容,因此,例如,我想在android应用程序中添加一个产品,它将被添加到应用程序中(以图形方式),但不会添加到数据库中,因此如果我返回到该活动,我将不会看到该产品,因为它没有添加到数据库中(因此从db加载产品列表时不会显示)