2

我的登陆页面即将推出,其中包含用户名,电子邮件地址等用于订阅的呼叫。用户不需要认证即可订阅。他可以是任何访问此页面的随机人员。我觉得规则应该是“.read”:false,“.write”:true。但谷歌警告我说写:真正的将允许任何人写入数据库,即使不使用该应用程序的人。Firebase实时数据库:登陆页面的正确安全规则是什么?

我觉得这是很自然的,直到我把一个CAPTCHA什么的。这些问题是如何解决的(订阅中的垃圾邮件预防或即将推出的具有表格的页面)?

回答

2

您可以采取什么措施来防止滥用安全规则(它不会阻止各种垃圾邮件,因为您应该使用验证码和其他解决方案),您可以在Firebase上设置电子邮件身份验证,邮件确认。进入身份验证>登录方法>启用电子邮件。

将用户电子邮件和用户名保存到数据库时,可以在数据库中创建“用户”节点,并将其保存在Firebase分配给用户的用户ID下。

example of user id assigned by Firebase (0TTUf ...是火力地堡分配ID)

火力地堡会要求输入密码,因为你并不需要用户订阅,你只需要保持他们的电子邮件和密码,只需将模拟密码分配给所有用户。

它应该是这样的:

enter image description here

当你只是捕捉为自己的电子邮件和名字,你并不需要用户进行身份验证,我不明白为什么你会给用户写或读权限。只需执行程序中的逻辑即可保存这些数据。

然后你的规则是这样的:

{ 
    "rules": { 
    ".read": false, 
    ".write": false 
    } 
} 

没有允许用户阅读或作为你自己管理其写入到数据库中。

总结起来:请求名称和电子邮件,指定一个密码,这个数据发送到 火力地堡作为一个新的用户登录,保存电子邮件和名义 /用户/ $ USER_ID