繁体   English   中英

PHP 中的注册确认如何使用 MySQL,令牌?

[英]How works registration confirmation in PHP with MySQL, token?

我在想这个方法:

  1. 用户在注册表中输入用户名、密码等并点击提交
  2. 我将值存储在 db 中(pw 当然是散列的),我在数据库中为这个用户生成一个随机字符串令牌变量,并在数据库中设置一个变量 false 意味着用户的注册尚未确认。
  3. 我将确认电子邮件发送到用户的电子邮件地址:请在此处确认您的注册:domain.com/confirm.php?token=RANDOMSTRING 其中 randomstring 是我在注册时单击提交时生成的字符串。 使用这种方法,我认为用户无法确认其他人的注册,只能确认他/她自己的注册。
  4. 用户点击电子邮件中的链接,在这里我询问更多关于他的数据(在 domain.com/confirm.php?token=RANDOMSTRING 网站上)在表单中添加更多关于他的数据并确认注册。 我在 db 中设置了一个真正的变量,这意味着用户注册得到确认。 (在conform.php我检查令牌是否存在于数据库中)

是好方法吗??

这里明显的问题是您的 RANDMONSTRING 值的冲突(即使它不太可能与大 RANDOMSTRING 值)。 如果验证帐户启动 session 或暴露任何其他信息,也存在枚举攻击的风险。 您可以通过使用 URL 来避免这些情况,其中包括用户 email 和 RANDOMSTRING 并且需要在激活之前对两者进行匹配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM