如何防止客户端控制台攻击firebase网络应用程序?

时间:2013-10-08 02:00:03

标签: firebase

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

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

我写的任何防御性逻辑都将对任何想要破解它的人开放。

你是如何处理的?有工作吗?

2 个答案:

答案 0 :(得分:6)

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

Firebase使用简单但功能强大的security rules来缓和客户端。将这些与身份验证模式相结合,您可以限制访问,并以最小的麻烦验证任何传入的数据。

{
   "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"
           }
       }
   }
}

答案 1 :(得分:0)

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

希望这会在Firebase平台上提供更多想法。