我突然意识到,有了这么多客户端逻辑,恶意用户可以通过在任何浏览器中使用控制台来欺骗,覆盖或游戏firebase应用程序。
例如,我可以输入$(“。flag”)。click()并用三个笔划标记我的应用程序中每个帖子都不存在。
我写的任何防御性逻辑都将对任何想要破解它的人开放。
你是如何处理的?有工作吗?
答案 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平台上提供更多想法。