【问题标题】:protect firebase database listeners from the web DOS attack and abuse plain credentials保护 firebase 数据库侦听器免受 Web DOS 攻击和滥用普通凭据
【发布时间】:2017-08-05 18:07:14
【问题描述】:

Firebase 在手机上非常有意义。但不是针对网络,每个人都知道

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

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

还有其他方法可以在不牺牲安全性的情况下利用实时同步吗?除了使用云功能每分钟或点击检查链接。

【问题讨论】:

  • Firebase 监控滥用行为并在检测到时采取行动。如果您怀疑您的项目存在滥用行为,请reach out to Firebase support 寻求个性化的故障排除帮助。

标签: javascript security firebase firebase-realtime-database real-time


【解决方案1】:

我遇到了同样的问题,并想出了一个解决方案,至少可以有效地限制 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 身份验证,比如说 googleauth,来读取/写入您的数据库,您可能永远不必担心 DOS。

【讨论】:

    猜你喜欢
    • 2019-12-31
    • 2010-11-04
    • 2023-02-01
    • 2017-12-04
    • 2011-05-14
    • 2021-03-30
    • 2018-04-02
    • 2017-04-07
    • 2021-03-05
    相关资源
    最近更新 更多