0

私はstackoverflowで次のことを読みました:

never store the users password or even a hash of the password in session or cookie data. 

私は、一定のパスワードをチェックするシステムを作成している最中です。それがセッションに保存されたものと異なる場合は、強制的にログアウトします。Facebookのような何か?パスワードを変更した場合、またはパスワードが変更された場合、ログアウトされます。

私のコードは以下のとおりです。

function ConstantPassword($Password)
{
    if ($_SESSION['Password'] !== $Password)
    {
        include "Logout.php";
    }
}

しかし、パスワードをセッション/Cookieに保存しないと言われたら?これに対する別の回避策は何ですか?

4

4 に答える 4

1

セッションにソルト(またはそのハッシュ)を保存できます。

パスワードを変更するとソルトが変更され、セッションが無効になります。

于 2013-01-22T22:52:32.170 に答える
1

チェックを 1 回実行してから、$_SESSION['logged_in'] = TRUE変数を格納できます。ログアウトするunset($_SESSION['logged_in'])と、それとsession_destroy()セッション。パスワードもソルトもセッションに入れる必要はありません。

また、独自にパスワードを実装するべきではありませんが、代わりにこれを使用してください: https://github.com/ircmaxell/password_compatこれは、PHP 5.5 に含まれる予定のライブラリです。

于 2013-01-22T22:55:00.897 に答える
0

データベースにペア(random_hash、user_id)を保存するよりもパスワードを1回確認し、random_hashをセッションに入れます。

于 2013-01-22T23:01:13.543 に答える
-1

セッションにパスワードを保存したくない場合は、代わりに最後のパスワード変更のタイムスタンプを保存し、リクエストごとにデータベースに対して検証することができます。

于 2013-01-22T22:58:18.890 に答える