当前位置: 首页 > 知识库问答 >
问题:

Firebase:当用户可以使用虚假地址时,通过电子邮件地址保护记录

严亮
2023-03-14

我正在制作一个网络应用程序,您先付费使用它,然后再登录。注册工作流程如下:

> < li>

在我的网站上付款后,客户会收到与其电子邮件地址相关联的订单ID。客户端将其发送到Firebase功能endpoint,以激活他们的订单。

Firebase功能检查订单ID是否有效,并使用长随机密码创建一个Firebase用户(以防止任何人登录),然后发送密码重置电子邮件。在Fiack中创建“付款”记录并与用户ID相关联。

用户遵循密码重置电子邮件,然后登录我的应用程序。如果Fi恢复包含与该用户ID关联的付款,则会激活付费功能。

这一切似乎都很好,除了:

> < li>

恶意用户Bob可以在我的控制之外创建一个他不拥有的电子邮件“x@example.com”用户,并使用Firebase client SDK登录。

爱丽丝然后为她的电子邮件“x@example.com”付款。

Bob仍将登录,现在可以使用Alice付费的功能。

我如何防止这种情况?

我的一个想法是,上面的Firebase函数可以检查用户“x@example.com”是否存在未验证的电子邮件地址,如果存在,它将1)删除该用户,2)再次为该电子邮件地址创建一个用户(创建一个新的唯一用户ID)。Bob将拥有一个不同于与电子邮件地址相关联的用户ID,因此无法访问支付记录。但是,如果Alice在第一次付款后没有验证她的电子邮件就进行了两次付款,这种情况就会发生。解决这个问题的可靠方法是什么?

共有1个答案

弘浩瀚
2023-03-14

考虑在处理交易前验证电子邮件。一种选择是使用电子邮件链接登录。这将登录用户并验证他们的电子邮件。如果您愿意,也可以在之后设置密码。如果现有的未经验证的提供程序链接到该帐户,它将被取消链接,并且恶意用户以前设置的任何现有会话都将被撤销。

 类似资料:
  • 关于这个线程的后续:Woocommerce退款电子邮件 我有一个问题我似乎无法解决,我阅读了所有关于扩展WC_Email类的主题,该类具有自定义触发器,但我无法使其工作。 我想要实现的是添加一个电子邮件通知到WooCommerce电子邮件设置,并发送一封电子邮件给收件人,只要客户更新它的帐单或运输细节。 因此,在functions.php中,我将woocommerce_customer_save_

  • 我对Firebase和Swift很陌生,在查询时遇到了一些麻烦。因此,基本上我想做两件事: 查询我的用户,只找到那些在他们的名称(或电子邮件地址)中包含特定字符串的用户,并将他们添加到数组中。 获取我的所有用户并将他们添加到数组中。 正如您所看到的,我正在使用Firebase的简单登录(稍后我也想添加Facebook登录),并且我正在按用户的uid存储我的用户。 我的规则文件的一部分如下所示: 所

  • 一个场景: > < li> 我按照以下安全规则在Firestore中存储敏感数据: 恶意用户Bob下载了我的JavaScript应用程序,并使用客户端调用创建了一个帐户,其电子邮件“x@example”不受他们控制,并且在没有电子邮件验证的情况下使用他们选择的密码。Bob现在已登录。 合法用户Alice希望为自己的电子邮件地址创建帐户“x@example“,执行电子邮件验证并从Firestore读

  • 问题内容: 我正在尝试创建一个auth后端,以允许我的用户使用他们的电子邮件地址或他们在Django 1.6中使用自定义用户模型的用户名登录。当我使用用户名登录时,后端工作正常,但由于某种原因,没有电子邮件。有什么我忘记要做的事吗? 编辑:按照建议,我已从ModelBackend继承并将其安装在我的设置中。在我的设置中,我有这个(,)并且我将后端更改为这个: 现在我得到一个错误。 问题答案: 遵循

  • 问题内容: 我想在我的网站上使用自动填充/自动格式化的“收件人”字段,该字段的工作方式类似于GMail中的字段。 有谁知道jQuery这样的事情? 纯JavaScript?还是其他选择? 问题答案: 有很多的jquery位可以做到这一点,您可以在Google上搜索“ jquery autocomplete”,然后看看最喜欢哪个。 这是比较有名的一个:http : //docs.jquery.com