0

現在、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 に保存できない場合、どこに保存しますか?

4

1 に答える 1

1

パスワードをどこにも保存しないでください。特に Cookie には保存しないでください。

ユーザーのログイン状態を維持するには、セッションを使用します。セッション 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']ユーザーを特定するために調べてください。

セッションの詳細については、マニュアルを参照してください: http://www.php.net/manual/en/book.session.php

于 2013-02-19T16:56:36.270 に答える