Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firebase匿名登录安全性_Javascript_Firebase_Firebase Realtime Database_Firebase Authentication_Firebase Security - Fatal编程技术网

Javascript Firebase匿名登录安全性

Javascript Firebase匿名登录安全性,javascript,firebase,firebase-realtime-database,firebase-authentication,firebase-security,Javascript,Firebase,Firebase Realtime Database,Firebase Authentication,Firebase Security,我有一个web应用程序,它在访问者提交表单时写入数据,在提交表单时读取数据。每个人都可以读取数据,但要写入数据,每当用户单击提交按钮时,我都会使用firebase匿名登录选项 在我的firebase数据库规则中,我已将写入设置为“auth!=null”,因为没有用户,但我仍然希望保护数据 为什么任何人都不能在浏览器开发工具中找到我的配置文件并创建一个使用该配置文件和匿名登录并滥用我数据的应用程序?如果可以,我如何确保我的数据保持安全?他们可以创建不同的用户并修改该用户的数据,这很好。然而,他们将

我有一个web应用程序,它在访问者提交表单时写入数据,在提交表单时读取数据。每个人都可以读取数据,但要写入数据,每当用户单击提交按钮时,我都会使用firebase匿名登录选项

在我的firebase数据库规则中,我已将写入设置为“auth!=null”,因为没有用户,但我仍然希望保护数据


为什么任何人都不能在浏览器开发工具中找到我的配置文件并创建一个使用该配置文件和匿名登录并滥用我数据的应用程序?如果可以,我如何确保我的数据保持安全?

他们可以创建不同的用户并修改该用户的数据,这很好。然而,他们将无法获得该匿名用户的数据。通过设置以下规则,可以确保只有特定用户(由唯一用户id标识)可以访问他/她自己的数据。每个匿名用户都有一个唯一的uid:

{
“规则”:{
“用户”:{
“$user_id”:{
//授予此用户帐户的所有者写权限
//其uid必须与密钥($user\u id)完全匹配
“.write”:“$user\u id==auth.uid”,
//你也可以做同样的阅读。
.read:“$user\u id==auth.uid”
}
}
}
}
查看文档以了解有关此方面的更多信息:

这可以保护匿名登录到您的真实应用程序的用户不会被某些网络钓鱼应用程序从外部访问其数据


但是,您无法防止有人使用API密钥和注册匿名用户。如果您想要更安全的登录机制,您可以查看OAuth提供商或电话登录,这些提供商或电话登录具有原始验证机制。

如果您将“auth!=null”设置为写入规则,除了相关用户之外,没有人可以写入数据,但是如果您有疑问,可以使用firebase规则模拟器测试您的规则。当然,但是为什么任何人都不能找到我的配置文件并使用它连接到我的数据库,使用匿名登录并滥用我的数据呢?找到你的配置是可能的,因为配置在javascript文件中,但是你可以很难做到这一点,只需缩小javascript文件。混淆配置数据不是解决方案。事实上,任何用户都可以通过进入浏览器开发工具的“网络”选项卡找到Firebase数据库的URL。配置数据是使用Firebase服务所必需的,它不是安全措施。看看我的答案。为确保特定用户只能访问其授权访问的数据,请阅读Firebase文档的[User-Based Security]()部分。在写入规则和匿名登录上使用“auth!=null”时,是否有人可以使用我的配置文件创建应用程序并更改我的数据?这是我的问题。很酷,谢谢。问题是,当用户点击提交按钮时,他们应该将数据发送到全局存储。当我检索数据时,我需要用户通过点击提交按钮发送的所有数据。换句话说,这里没有用户数据,只有一些我需要存储的签入和签出日期。那我该怎么办?嗯,我明白了。仅使用匿名用户很难保证安全。您可以使用脱机脚本为每个用户拾取使用上述指定规则保护的特定于用户的数据,并在您的全局存储中对其进行修改,但这无法防止钓鱼应用程序登录会影响此数据的用户。我认为,如果这些数据是关键/敏感的,您可能应该使用更安全的身份验证机制。否则,您可能不得不承担风险。