6

Jens Roland は、ユーザーの Cookie に保存されるランダムな 128 ビットの「トークン」を生成することを含む永続ログイン Cookie の一般的なソリューションで、次のことを推奨しています。

また、永続的なログイン Cookie (トークン) をデータベースに保存しないでください。ハッシュのみを保存してください。ログイン トークンはパスワードと同等であるため、攻撃者がデータベースを手に入れた場合、平文のログイン パスワードの組み合わせであるかのように、トークンを使用して任意のアカウントにログインできます。したがって、永続的なログイン トークンを保存する場合は、強力なソルト付きハッシュ (bcrypt / phpass) を使用してください。

しかし、Cookie トークンを bcrypt すると常に異なる結果が得られる場合 (bcrypt は常にランダムなソルトを使用するため)、DB 内の bcrypt されたトークンに対して Cookie トークンをチェックして、Cookie ログインが有効であることを確認するにはどうすればよいでしょうか?

つまり、Cookie トークンを単純に暗号化して DB で一致するものを探すことはできません。これは、推奨される解決策(「サーバーは、Cookie の有効性を確認するために参照される番号 -> ユーザー名の関連付けのテーブルを保持しています。")?

編集:

上記にリンクされている推奨ソリューションに従って、1 人のユーザーが異なるデバイスに対して複数のCookie/トークンを持つことができることに注意してください。ユーザーごとに1つのトークンのみであると想定した回答が送信されたため(その後削除されました)、それについて言及します。

4

1 に答える 1