问题 安全的“通过电子邮件验证”系统的工作流程是什么?


我正在考虑一个论坛类型系统,允许用户在没有帐户但通过电子邮件验证的情况下发布/编辑帖子。

因此,您需要填写表单,提供电子邮件地址,提交,然后在电子邮件中接收“激活”您帖子的链接。编辑也一样。点击“修改”,接收带链接的电子邮件,链接带您进行编辑。

我正在努力了解安全执行此操作的确切步骤。如何创建一段时间后过期的链接?我如何确保它来自电子邮件地址,而不只是一些机器人循环通过潜在的网址?

任何帮助开始正确的方向表示赞赏。

我正在使用Python, 烧瓶Postgres的 上 Heroku的


4326
2017-11-13 19:51


起源

你尝试了什么? - lolopop
我理解你试图阻止SO用户为我工作,但我已经清楚地注意到我只是在寻找这种类型的系统如何运作的一般方向。我想我会在浪费时间“试图”做错事之前请专家们先了解一下。 - chrickso


答案:


既然你正在使用flask,你可能想看看这个:

http://flask.pocoo.org/snippets/50/

使用上面链接的示例,工作流可能是这样的:

  1. 用户输入电子邮件并发布。
  2. 使用生成安全链接 itsdangerous 可以绑定到特定电子邮件的模块(在上面的剪辑中解释)
  3. 一旦用户收到在步骤2中生成的电子邮件和特定URL,他们就可以单击它以确认帖子。您甚至可以在用户单击此URL时添加额外的检查层,您可以要求他们再次输入其电子邮件地址,然后将其与绑定到URL的电子邮件进行匹配。

14
2017-11-13 20:15