保护Firebase数据库侦听器免受Web DOS攻击并滥用纯凭据

问题描述 投票:8回答:1

Firebase在电话上意义非凡。但不是网络,每个人都知道

  1. 我使用Firebase
  2. 他们知道数据库URL
  3. 他们确实看到了我允许他们阅读的部分的数据库结构
  4. 通过打开数据库的许多侦听器,可能发生DOS攻击

我想在新闻提要,加书签的帖子和帖子草稿上实现侦听器,以便用户可以继续从电话中进行编辑。是的,我知道安全规则确实可以保护数据库,因此没有人可以读取其他用户的数据。但这并不能保护我免受虐待。

是否存在另一种利用实时同步而不牺牲安全性的方法?除了使用云功能每分钟或单击时检查链接。

javascript security firebase firebase-realtime-database real-time
1个回答
0
投票

我遇到了相同的问题,并找到了一种解决方案,至少可以有效地限制Firebase中可公开写入的数据的长度。

说您有一个chatbox数据库,该数据库用于保存namemessage用户。

service cloud.firestore {
  match /databases/{database}/documents {
    match /chatroom/{document=**} {
      allow read: if true;
      allow  write: if resource.data.message.length <= 260 && resource.data.name.length <= 20;
    }
  }
}

使用此限制,我至少可以有效地删除尝试将请求充斥数据库的请求。(请注意,这并不限制所写内容的长度,但会减少尝试次数)请参阅:How to limit string length in firebase

对于DOS,通过仅通过人工侦听器读取数据,我认为这不会带来太大的影响,因为作为受害者,攻击在网络流量和计算方面将同等昂贵。

基本上,Firebase的大部分弹性来自设置良好的附件。如今,每个更大的应用程序都需要您以某种形式进行身份验证,因此,如果您只需要some auth(可以说googleauth)来读取/写入数据库,则您可能永远不必担心DOS。

© www.soinside.com 2019 - 2024. All rights reserved.