我突然意识到,有了这么多客户端逻辑,恶意用户可以通过在任何浏览器中使用控制台来欺骗,覆盖或游戏firebase应用程序.
例如,我可以输入$(".flag").click()并用三个笔划标记我的应用程序上不存在的每个帖子.
我写的任何防御性逻辑都将对任何想破解它的人都可用.
你是怎么处理的?有工作吗?
实际上,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)
归档时间: |
|
查看次数: |
3915 次 |
最近记录: |