首先,我想让你产生一个想象的情况:
我正在制作一个网站。为此,我创建了第一个文件:index.html。我想在Firebase访问时创建一个登录/注册脚本。我给了电子邮件和密码输入以及提交按钮。简单。现在是时候将它们与firebase链接起来了,所以我要粘贴到文件JS片段,创建createUserWithEmailAndPassword函数并在Firebase控制台中添加电子邮件/密码验证。现在是时候制作登录面板了。我正在创建相同的面板,但使用"登录"按钮,创建signInWithEmailAndPassword函数和onAuthStateChanged函数,其中我创建了"从数据库获取一些信息"用于为用户显示内容的功能。
好的,网站发布了......
他是一名黑客,他想从我糟糕的数据库中销毁整个数据,因此他复制了整个网站的源代码,但他将数据功能更改为删除数据功能。他使用自己在我网站上注册的电子邮件登录,然后激活删除功能,整个数据丢失......
最后这些问题:如何保护?这种情况有可能吗?如果没有 - 为什么不呢?
答案 0 :(得分:1)
您可以通过在数据库中实施安全规则来防范此类情况,您可以在以下位置了解相关信息:https://firebase.google.com/docs/database/security/
您最感兴趣的是.write
和.read
,它们允许您定义用户可以访问数据部分的规则
答案 1 :(得分:1)
黑客无法发布他的网站,因为他需要登录您的电子邮件才能执行firebase deploy
命令。
使用数据库规则".write": "auth != null"
,黑客只能删除自己的数据。您可以使用数据库规则here