我正在考虑为我的网站使用这个注册流程:
1)用户通过输入电子邮件和密码注册。
2)将电子邮件和散列密码输入我的数据库
3)然后以url + jwt (包含电子邮件并在1小时内过期)字符串作为参数构造电子邮件。
4)用户接收电子邮件并点击链接。
5)将链接发送到我的服务器,在服务器上解析参数并检查jwt是否过期。
6)如果没有过期,我就会收到电子邮件,并在我的数据库中将帐户标记为有效的。
这种方法是否有明显的漏洞,会留下很大的漏洞?
发布于 2015-06-11 02:14:53
对于一个典型的电子邮件激活,它应该是好的,但密码重置或电子邮件确认,其中登录您以后,您通常希望确保令牌是单一用途。
这确保了中间人日志记录请求(即。公司网络管理员)无法跟踪相同的链接,并在合法用户之后登录。不过,您的有效期限制了这一可能性的窗口。
您还需要小心您为其他目的签名的任何其他用户输入。您希望确保用户不能通过输入将为您的电子邮件激活生成有效令牌的输入来利用其他功能。您可能希望在有效负载中包含一些随机的“操作”字符串,以确保为其他目的生成的令牌不能用于电子邮件激活。
https://security.stackexchange.com/questions/91348
复制相似问题