Email 电子邮件的局限性

Email 电子邮件的局限性,email,Email,我正在设计一封总结用户状态的电子邮件,这封电子邮件将为用户在其帐户中采取行动提供一些建议。因此,我想知道有没有一种方法可以让用户不用再登录一步就可以从电子邮件进入自己的帐户?您可以生成一个唯一的一次性URL,允许用户登录,方法是将令牌存储在数据库中,并将其与用户的帐户关联。如果需要,可以这样构造URL: http://www.example.com/login.php?token=EWYAOpJBHgEioVrWRDzeDGhySEyOGKpsaUIe0EnF 最后的随机数据几乎不可能用蛮力破

我正在设计一封总结用户状态的电子邮件,这封电子邮件将为用户在其帐户中采取行动提供一些建议。因此,我想知道有没有一种方法可以让用户不用再登录一步就可以从电子邮件进入自己的帐户?

您可以生成一个唯一的一次性URL,允许用户登录,方法是将
令牌
存储在数据库中,并将其与用户的帐户关联。如果需要,可以这样构造URL:

http://www.example.com/login.php?token=EWYAOpJBHgEioVrWRDzeDGhySEyOGKpsaUIe0EnF
最后的随机数据几乎不可能用蛮力破解,因为你可以任意延长它

一旦用户使用该URL登录,您可以通过将其重定向到主页、发出错误消息说该URL是临时的且已过期,或者向用户提供一个按钮,该按钮发送带有另一URL的电子邮件来防止再次使用该URL


但是我认为如果你在用户点击链接时只提供一个部分填写的表单(只有用户名)会更好,因为该URL可以循环使用或任其消亡,而不必担心流氓暴力。您可以生成一个唯一的一次性URL,允许用户登录,方法是将
令牌存储在数据库中,并将其与用户帐户关联。如果需要,可以这样构造URL:

http://www.example.com/login.php?token=EWYAOpJBHgEioVrWRDzeDGhySEyOGKpsaUIe0EnF
最后的随机数据几乎不可能用蛮力破解,因为你可以任意延长它

一旦用户使用该URL登录,您可以通过将其重定向到主页、发出错误消息说该URL是临时的且已过期,或者向用户提供一个按钮,该按钮发送带有另一URL的电子邮件来防止再次使用该URL


但我认为,如果用户单击链接时只向其提供一个部分填写的表单(只有用户名)会更好,因为该URL可以循环使用或任其消亡,而无需担心流氓暴力者。

当然。如果您正在编写应用程序,任何事情都是可能的

通常的方法是在提供给应用程序的每个链接中包含一个“验证器”。当我们说“验证者”时,我们的意思是“随机字母和数字”

您包含的每个链接可能如下所示:

<a href="...?auth=ilTmMDiTL0d46ZmNfDOpme84t3E8XdEbeFbRSZyCSoAiIkGFr2gRQnRFrtmaA4i">Delete My Account Forever</a>

为了实现这一点,您的数据库需要记录
iltmmditl0d46zmnfdopme84t3e8xdebbrszycsoaiikgfr2grqnrrfrtmaa4i
是一个有效的身份验证器,以便访问VoteyDisciple
的帐户。所以当字符串出现时,你知道让我登录

当然,问题是,如果其他任何人看到这封电子邮件(包括如果我将其转发给其他人),他们也可以单击链接,然后模仿我!您可以通过对此类验证器的有效时间施加时间限制,将其使用限制为仅一个特定操作(例如,“我允许您执行X,但如果您想执行任何其他操作,则需要登录),或通过其他方式,在某种程度上缓解这一问题


但最终,您的目标是让人们在不登录的情况下“登录”这一事实表明,这不是一个高安全性的环境,因此身份验证程序可能被破坏的风险可能不是什么大问题。

当然。如果您正在编写应用程序,任何事情都是可能的

通常的做法是在你提供给应用程序的每个链接中都包含一个“验证器”。当我们说“验证器”时,我们的意思是“随机字母和数字”

您包含的每个链接可能如下所示:

<a href="...?auth=ilTmMDiTL0d46ZmNfDOpme84t3E8XdEbeFbRSZyCSoAiIkGFr2gRQnRFrtmaA4i">Delete My Account Forever</a>

为了实现这一点,您的数据库需要记录
iltmmditl0d46zmnfdopme84t3e8xdebbrszycsoaiikgfr2grqnrrfrtmaa4i
是一个有效的身份验证器,可以访问,比如说,
VoteyDisciple
的帐户。因此,当该字符串出现时,您知道如何让我登录

当然,问题是,如果其他任何人看到该电子邮件(包括如果我将其转发给其他人),他们也可以单击该链接,然后模仿我!您可以通过对此类身份验证器的有效期施加时间限制,将其使用限制为仅一个特定操作(例如,“,”来在某种程度上缓解此问题我会让你做X,但是如果你想做其他事情,你需要登录),或者通过其他方式


但最终,您的目标是让人们在不登录的情况下“登录”这一事实表明,这不是一个高安全性的环境,因此身份验证程序可能被破坏的风险可能不会引起太大的关注。

登录到web应用程序?(桌面应用程序、电话、其他?)登录到web应用程序?(桌面应用程序、手机、其他?)明白了。谢谢你的快速回复,明白了。谢谢你的快速回复。