Firebase的保护程度如何?

Pet*_*994 1 firebase firebase-security firebase-authentication firebase-realtime-database

我很好奇,如果用户能够将任何数据写入他们具有写权限的密钥.当然,通常这是通过他们正在使用的应用程序进行身份验证来完成的.但它受保护的程度如何?如果我连接到我的wifi,我可以使用篡改数据来更改正在发送的网络活动.

如上所述:firebase是否使用每个帐户的唯一密钥加密数据?它表示数据在写入数据库之前已加密.但是,当密钥没有"到达"Firebase时,这不包括更改密钥的值.

是否可以通过监控网络活动来改变价值,例如篡改数据?

另外,让我们说这些是一些规则:

{
  "rules": {
    "users": {
      "$uid": {
        ".read": "$uid === auth.uid",
        ".write": "$uid === auth.uid"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

除了使用我的应用程序之外,用户还能以任何其他方式验证自己吗?如果经过身份验证的用户有写入规则,那么直接在数据库中更改值是多么容易?

谢谢

Mic*_*igh 7

在您提供的规则中,用户可以将任意数据写入与其自身对应的节点uid,这只能通过使用Firebase身份验证形式登录获得(包括使用Firebase管理SDK创建自定义令牌服务器端) ).

100%的Firebase实时数据库流量通过TLS加密连接发送.这种交通无法在中间进行,并且在飞行中会改变它.

您可以信任Firebase数据库安全规则来完成它们的工作,但您可以编写可以充分保护给定应用程序用例数据的强大规则.我建议在任何地方都使用.validate结构规则和细粒度.write规则.要记住的另一个重要提示是授权是分层的.一旦.write规则与客户端匹配,该节点的所有子节点都可以由该客户端编写.