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

Itu*_*mac 6 firebase

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

例如,我可以输入$(".flag").click()并用三个笔划标记我的应用程序上不存在的每个帖子.

我写的任何防御性逻辑都将对任何想破解它的人都可用.

你是怎么处理的?有工作吗?

Kat*_*ato 6

实际上,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"
           }
       }
   }
}
Run Code Online (Sandbox Code Playgroud)