【发布时间】:2018-05-19 01:29:11
【问题描述】:
我的 firebase 数据库中有许多路径,无需身份验证即可读取。如何防止垃圾邮件发送者?如果有人编写程序并反复发送请求以读取我的数据库中的所有路径怎么办?有没有办法防止来自特定 IP 的重复请求数量限制?
【问题讨论】:
-
安全规则中没有IP过滤器。但是,您绝对可以在安全规则中做一些事情来让滥用变得更加困难。确切的方法将取决于您要防止的特定滥用行为。所以:想想攻击者可能会做的事情,编写(如果您需要帮助:share)他们可以用来执行此操作的最少代码,然后编写安全规则,使滥用代码失败,同时保留您的实际的应用程序代码工作。如果无法区分您的应用代码和恶意代码,将很难保护。
-
我认为@FrankvanPuffelen 用他的评论覆盖了它。我的附加评论是,如果创建的应用程序具有无需身份验证即可读取的数据,那么为什么要尝试防止在没有身份验证的情况下读取该数据?即,向任何人开放该数据然后尝试限制访问是违反直觉的。首先要求身份验证来读取数据不是更安全吗?也许您可以提供一个具体的用例,说明为什么您可以公开提供数据,我们可以建议一种替代设计来保护这些数据?
-
@Jay 我将 firebase db 用于网站,而不是用于移动应用程序。我想防止用户重复发送请求。在正常使用中,合法用户在一天内不会向我的网站发送超过 100 个(正常为 10 或 20 个)。一些数据抓取人员,发送数千个请求以从我的站点获取数据。所以,如果每个 IP 超过 100 个,我想防止重复请求。
-
您无法直接执行此操作。您实质上是在询问如何防止用户向 Firebase 发送请求,而没有这样的动物。还是有关系吗?如果无需身份验证即可读取您的 Firebase,则任何人都可以读取数据并绕过您的网站。即,如果我知道您的 Firebase 网址,我可以编写一个应用程序来发送数千个请求并独立于您的站点读取该数据。正如我所提到的,答案是使用身份验证和合并规则来阻止读取请求完成。
标签: firebase firebase-realtime-database firebase-authentication