Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Bcrypt';记住我';cookie值_Php_Bcrypt - Fatal编程技术网

Php Bcrypt';记住我';cookie值

Php Bcrypt';记住我';cookie值,php,bcrypt,Php,Bcrypt,我正在使用Bcrypt(如中所示)将密码存储在数据库中,并尝试添加“记住我”功能,以使用cookie记录用户 当用户成功登录时,我重新创建哈希并在数据库中更新它。如果用户选中了“记住”选项,我将创建一个带有用户ID、过期日期的cookie,现在我不明白:我必须在cookie中存储哪个值?完整的字符(60)散列?我建议实现一个单独的“记忆”散列来存储在cookie中,并使用相应的DB表将该散列与特定的用户ID和到期日关联。将实际用户ID存储在cookie中是一个非常糟糕的主意,因为您无法验证他们是

我正在使用Bcrypt(如中所示)将密码存储在数据库中,并尝试添加“记住我”功能,以使用cookie记录用户


当用户成功登录时,我重新创建哈希并在数据库中更新它。如果用户选中了“记住”选项,我将创建一个带有用户ID、过期日期的cookie,现在我不明白:我必须在cookie中存储哪个值?完整的字符(60)散列?

我建议实现一个单独的“记忆”散列来存储在cookie中,并使用相应的DB表将该散列与特定的用户ID和到期日关联。将实际用户ID存储在cookie中是一个非常糟糕的主意,因为您无法验证他们是否只是更改了存储在cookie中的用户ID。通过在cookie中存储一个完全独立的散列,您可以轻松地在DB表中查找它所属的用户,并在有效且未修改的情况下自动将其重新登录。

谢谢您的建议。这似乎是一个合理的方法。我担心的一件事是,为了能够在站点的每个部分中检测用户cookie,无法向cookie添加安全访问,因为我必须在每个页面中设置
https
。你知道处理这个问题的方法吗?我建议的“回忆”cookie与会话(你应该在其中存储实际登录的用户)是不同的,并且完全独立的。只有在新会话启动时才需要检查记忆cookie,而新会话只能通过https身份验证函数进行。