保护 firebase 数据库侦听器免受 Web DOS 攻击和滥用纯凭据
protect firebase database listeners from the web DOS attack and abuse plain credentials
Firebase 在 phone 上非常有意义。但不是网络,每个人都知道
- 我使用 firebase
- 他们知道数据库URL
- 他们确实看到了我允许他们阅读的部分的数据库结构
- DOS 攻击可以通过打开许多数据库侦听器来发生
我想在新闻提要、书签 post 和 post 草稿上实施侦听器,以便用户可以继续从 phone 等编辑。是的,我知道安全规则确实可以保护数据库,因此没有人可以读取其他用户的数据。但它并不能保护我免受虐待。
有没有其他方法可以在不牺牲安全性的情况下利用实时同步?除了使用云功能每分钟或点击检查 link。
我遇到了同样的问题并想出了一个解决方案,至少可以有效地限制 firebase 中公开可写数据的长度。
假设您有一个 chatbox 数据库,用于保存 name 和 message 用户.
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,就可以 read/write 进入您的数据库,您可能永远不必担心关于 DOS。
Firebase 在 phone 上非常有意义。但不是网络,每个人都知道
- 我使用 firebase
- 他们知道数据库URL
- 他们确实看到了我允许他们阅读的部分的数据库结构
- DOS 攻击可以通过打开许多数据库侦听器来发生
我想在新闻提要、书签 post 和 post 草稿上实施侦听器,以便用户可以继续从 phone 等编辑。是的,我知道安全规则确实可以保护数据库,因此没有人可以读取其他用户的数据。但它并不能保护我免受虐待。
有没有其他方法可以在不牺牲安全性的情况下利用实时同步?除了使用云功能每分钟或点击检查 link。
我遇到了同样的问题并想出了一个解决方案,至少可以有效地限制 firebase 中公开可写数据的长度。
假设您有一个 chatbox 数据库,用于保存 name 和 message 用户.
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,就可以 read/write 进入您的数据库,您可能永远不必担心关于 DOS。