我有一个webapp,我希望用户能够在无需登录的情况下与之交互。尽管有许多功能,但让我们考虑其中一个:点击“喜欢”按钮-我希望用户只能点击一次“喜欢”。没有用户账户,我的Firebase容易受到垃圾邮件攻击(有人可能获取我的Firebase URL并不断向我的数据库提交数据;唯一防止此类攻击的是客户端代码,但垃圾邮件发送者可以轻松地通过在其他地方运行其代码来绕过它)。
因此,我考虑了Firebase的匿名账户功能;每个匿名账户只能在其会话期间投票一次,我将在用户本地存储中存储投票。但如果垃圾邮件发送者不断创建新的匿名账户并清除其存储,则此方法也可以被绕过。事实上,他们不必清除自己的存储,因为存储检查发生在客户端代码中,而客户端代码很容易被绕过。
因此,现在我正在考虑Firebase的电子邮件账户功能。当我编写代码时,我意识到什么可以阻止垃圾邮件发送者输入大量虚假电子邮件地址?这可能会迅速填满我的数据库,并可能导致“喜欢”按钮的垃圾邮件。Firebase会检查电子邮件是否有效吗?Firebase会发送确认电子邮件,要求用户进行验证吗?
因此,我考虑了Firebase的匿名账户功能;每个匿名账户只能在其会话期间投票一次,我将在用户本地存储中存储投票。但如果垃圾邮件发送者不断创建新的匿名账户并清除其存储,则此方法也可以被绕过。事实上,他们不必清除自己的存储,因为存储检查发生在客户端代码中,而客户端代码很容易被绕过。
因此,现在我正在考虑Firebase的电子邮件账户功能。当我编写代码时,我意识到什么可以阻止垃圾邮件发送者输入大量虚假电子邮件地址?这可能会迅速填满我的数据库,并可能导致“喜欢”按钮的垃圾邮件。Firebase会检查电子邮件是否有效吗?Firebase会发送确认电子邮件,要求用户进行验证吗?