设置Firebase
数据库的安全规则以使未经身份验证的用户也可以访问数据库有什么弊端?以什么方式可以攻击数据库?
最佳答案
默认情况下,可以通过项目的ID访问所有firebase数据库:
例如:
您可以使用项目ID在任何计算机上浏览数据库:
'https://[PROJECT_ID].firebaseio.com/.json'
(获取请求)
我们还可以向您的数据库发出POST PATCH和DELETE请求并将其清除!
curl -X POST -d '{"myData" : "in", "your" : "Database!"}' \
'https://[PROJECT_ID].firebaseio.com/yourHacked.json'
如果您有安全规则,则当您发送带有请求的Auth令牌时,此功能仍将起作用。 (因此,添加的每个安全规则都会变得更加安全)。
使用安全规则,可以确保只有数据所有者可以编辑或读取它:
{
"rules": {
"Notes": {
"$userId": {
// grant read/write permission to the owner of this note
// whose uid must exactly match the key ($user_id)
".write": "$userId === auth.uid",
".read": "$userId === auth.uid"
}
}
}
}
攻击者可能会将您的数据库当作自己的数据库使用,从而导致大量流量,数据损坏/挖掘,金钱(使用配额)。
有关更多信息,请参见以下参考:
https://firebase.google.com/docs/reference/rest/database/