firebase 安全层和操作 (javascript)

firebase security layer and manipulations (javascript)

我想知道 Firebase 是否受到 'scriptkiddies' 的保护。 例如:如果我知道 Firebase 实例(从我在在线教程中看到的),那么我可以从我的浏览器控制台向 Firebase 存储添加一些东西。

var fbinst = new Firebase("https://nettuts-chat-application.firebaseio.com/")    
for(var i=0,l=1000;i<l;i++){fbinst.push({comment:'lol'})}

如何避免这种情况?受保护..

Security Rules.

Firebase 安全规则是控制对 Firebase 数据库的访问的服务器端表达式。

安全规则带有一组服务器变量,允许您检查服务器值。 auth 变量包含当前经过身份验证的用户,或者 null 如果存在 none。

在以下示例中,只有经过身份验证的用户才能读取和写入自己的数据。

{
   "rules": {
      "$uid": {
         ".read": "auth.uid == $uid",
         ".write": "auth.uid == $uid"
      }
   }
}

安全规则允许您使用 data 变量读取当前数据,并使用 newData.

读取尝试的数据
"posts": {
   "$post_id": {
      ".read": "data.child('uid').val() == auth.uid",
      ".write": "newData.child('uid').val() == auth.uid",
   }
}

您还可以使用 .validate 规则验证数据结构。

"posts": {
   "$post_id": {
      ".read": "data.child('uid').val() == auth.uid",
      ".write": "newData.child('uid').val() == auth.uid",
      ".validate": "newData.hasChildren(['uid'])"
   }
}