php - 通过 $_GET 激活帐户的正确方法是什么?

标签 php mysql hash passwords get

所以现在当用户注册时,他们的密码被散列并存储,他们的 id 作为主键存储,字段 email_activation 中的单元格默认枚举为“否”。然后他们会收到一封电子邮件,点击以下链接可以激活他们的帐户。

http://website.com/activation.php?id=1&pass=23a000e03e9116c958dh923542

点击链接后运行以下脚本

$id= $_GET['id'];
$hashPass= $_GET['pass'];

mysql_query("UPDATE members SET email_activation='yes' WHERE members_id='$id' AND members_password='$hashPass'")

考虑到他们的散列通行证是 URL 的一部分(假设字符串的适当卫生等...),这似乎是一种激活某人帐户的安全方法吗?

最佳答案

没有。使用单独的字段来包含激活散列,并使散列基于多项内容(用户名、密码散列、一天中的时间等)。

关于php - 通过 $_GET 激活帐户的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6851985/

相关文章:

c++ - 保留最小完美哈希函数的顺序

php - 在 php 中使用 Ubuntu 命令

PHP 数组 stdClass 对象 - 回显值

mysql - 按多个参数分组的累积和

hash - 如何在我的数据库中存储 Argon2 密码?

java - 在 Objective-C 中计算字符串的 MD5 哈希值

php-fpm 访问日志应包含从 php 应用程序设置的自定义变量

javascript - AJAX 请求错误,尽管数据已成功更新。 "Unexpected Token <"

mysql 设计 : verbose tables

MySQL 加载字符串的数据文件