2013-05-22 20 views
0

我不确定这是Firefeed.firebaseio.com规则设置中的安全错误还是错误。擦除不属于所有者的Firebase数据

在此之前,我很好奇为什么我们在注册firebase时没有获得api-key。 所以我的第一个问题出来了。 (每个人都可以简单地擦除或编辑你的数据?如果有人知道你的firebase网址)

然后我想知道规则是如何工作的,我试着在firefeed.firebaseio.com上做些什么。由于我们可以在users/user_id/feed中编写一些内容,并使用此代码写入Feed。

var url = new Firebase('https://firefeed.firebaseIO.com'); 
    var authClient = new FirebaseAuthClient(url, function(error, user) { 
     if (error) { 

      console.log(error); 

     } else if (user) { 

      console.log(user); 
      // user authenticated with Firebase 
      var usersRef = url.child('/users/MYUSERID/feed'); 
      usersRef 
       .set({ 
         email: user.email, 
         username: user.username 
        }); 
     } else { 
      // user is logged out 
     } 
    }); 

之后,我所有的饲料和饲料之后都走了,只有左侧的电子邮件,用户名后,我跑我的代码。我在此之前和之后附上了一张照片。

我知道我只是擦我的帐户饲料不是别人,因为规则设置欺骗用户,但这是危险的吗?我们如何预防这一点?

enter image description here

回答

2

安全规则目前允许你删除你自己的饲料,按照这一行:https://github.com/firebase/firefeed/blob/master/rules.json#L14

// The user is allowed to write everything in their bucket. 
".write": "$userid == auth.id" 

您可以通过安全规则去除线Firefeed改变这种行为(在你自己部署的课程中,我们不打算改变firefeed.io上的公共版本的这种行为)。