我目前正在使用http://www.openwall.com/phpass/来解析我的密码。
即使输入相同的密码,哈希也会产生不同的哈希值。
我检查这样的密码:
$verify = $hasher->CheckPassword($password, $info['password']);
$password
是输入的值,$info['password']
是数据库中的哈希值。
现在,我正在设置这样的cookie:
setcookie(user, $_POST['username'], $hour, $path);
setcookie(pass, $_POST['password'], $hour, $path);
这导致我的cookie成为密码而没有任何散列。如何使我的cookie更安全,存储我的密码?
如果我不能将它们存储在cookie中,我会在哪里存储它们?
答案 0 :(得分:1)
不要在任何地方存储密码,特别是不能存放在COOKIES中。
要让用户登录,请使用会话。 会话cookie 只包含无意义的随机ID,而在服务器端,您只需要在会话中存储用户的ID:
$data = /* get user record from database based on username */;
if ($hasher->CheckPassword($_POST['password'], $data['password'])) {
session_start();
$_SESSION['userid'] = $data['userid'];
}
不需要更多。您无需在任何地方存储密码或重复此密码检查。只需查看$_SESSION['userid']
即可识别用户。