如何防止firebase web应用上的客户端控制台黑客攻击?

如何防止firebase web应用上的客户端控制台黑客攻击?,firebase,Firebase,我突然意识到,有这么多客户端逻辑,恶意用户可以通过在任何浏览器中使用控制台来欺骗、覆盖或游戏firebase应用程序 例如,我可以输入$(“.flag”)。单击()并用三个笔划标记我的应用程序中不存在的每个帖子 我写的任何防御性逻辑都将提供给任何想要破解它的人 你是怎么处理的?有解决办法吗?实际上,Firebase在安全性方面与任何其他服务器进程都没有区别。任何人都可以在任何站点上打开JavaScript控制台(或编写自己的HTML页面,或从命令行运行curl)来尝试操作数据 Firebase使

我突然意识到,有这么多客户端逻辑,恶意用户可以通过在任何浏览器中使用控制台来欺骗、覆盖或游戏firebase应用程序

例如,我可以输入$(“.flag”)。单击()并用三个笔划标记我的应用程序中不存在的每个帖子

我写的任何防御性逻辑都将提供给任何想要破解它的人


你是怎么处理的?有解决办法吗?

实际上,Firebase在安全性方面与任何其他服务器进程都没有区别。任何人都可以在任何站点上打开JavaScript控制台(或编写自己的HTML页面,或从命令行运行curl)来尝试操作数据

Firebase使用简单但功能惊人的方法管理客户端。将这些与身份验证模式结合起来,您可以限制对任何传入数据的访问,并以最小的麻烦验证任何传入数据

{
   "rules": {
       // widgetName must be a string
       "widgetName: { ".validate": "newData.isString()" },

       // user accounts can only be read by the authenticated client
       "users": {
           "$user_id": {
               ".read": "$user_id === auth.id"
           }
       }
   }
}

Firebase规则确实是一种新的web构建方法。您可以使用这些规则构建任何类型的web应用程序。 我不会把规则代码放在这里,但我会解释我的意思。 例如您想构建一个学习应用程序。使用规则,您可以为用户创建两个或三个角色。然后,对于每个内容,您可以放置一个字段(例如数组),并检查每个请求,验证后的请求者用户是否具有访问某些内容的角色。 我认为所有CMS现在都是通过这种方式工作的


希望这能给Firebase平台带来更多的想法

你不能阻止人们使用他们的控制台。使用服务器端。将来自任何给定用户的标志/更新数量限制到某个绝对限制或某个限制/分钟。通过cookie、浏览器id、ip地址或任何您希望使用的用户标识进行检测。Firebase安全规则可防止用户更改您不希望他们接触的数据:有趣的评论和答案。我最近深入研究了安全规则,看看你指的是什么。验证表达式可以不仅仅是检查身份验证匹配等。它可以检查时间戳的差异或者我想到的任何其他比较。例如,时间戳小于500毫秒或类似的同一用户。和往常一样,要想使某些东西防水需要大量的焦油。我想知道是否会发生以下示例场景:假设我有一个博客,我在每一页中为经过身份验证的用户提供10篇帖子。如果一个经过身份验证的用户访问url。。他们会看到我目前的200篇帖子吗?他们是否有权查看我不想查看的节点?喜欢“喜欢”这篇文章的用户?如果是,我如何阻止他们访问url?