[解決済み] Webサイトに "remember me "を実装するのに最適な方法は何ですか?[クローズド]
2022-03-18 08:36:22
質問
私のウェブサイトに、ユーザーがクリックできるチェックボックスを設け、ウェブサイトを訪れるたびにログインする必要がないようにしたいのです。これを実装するために、ユーザーのコンピュータにクッキーを保存する必要があることは分かっていますが、そのクッキーには何が含まれていなければなりませんか?
また、このクッキーがセキュリティ上の脆弱性をもたらさないようにするために気をつけるべき一般的な間違いがあれば、それは「私を覚えていて」機能を与えつつも避けることができるでしょうか?
解決方法は?
永続的なログインクッキーのベストプラクティスの改善
次のような戦略もあります。 ベストプラクティスはこちら (2006年)または アップデートされた戦略はこちら (2015):
- Remember Meにチェックを入れた状態でユーザーがログインに成功すると ログインクッキーが発行されます。 標準のセッション管理クッキーに加え
- ログインクッキーの内容は シリーズ識別子とトークン . シリーズとトークンは 推測不能な乱数 を適当な広さの空間から抽出する。両者は一緒にデータベースのテーブルに格納される。 トークンはハッシュ化される (sha256でよい)。
-
非ログインユーザーがサイトを訪問し、ログインクッキーを提示すると、シリーズ識別子は
データベースで検索する
.
- もし シリーズ識別子 が存在し、そのハッシュが トークン がそのシリーズ識別子のハッシュと一致する場合、そのユーザは 認証済み . A 新しいトークン が生成され、トークンの新しいハッシュが古いレコードの上に保存され、新しいログインクッキーがユーザーに発行されます。 シリーズ識別子 ).
- シリーズが存在するがトークンが一致しない場合は 盗難 が想定されます。ユーザーは強い言葉で警告を受け、そのユーザーの記憶しているセッションはすべて削除されます。
- ユーザー名とシリーズが存在しない場合、ログインクッキーは 無視 .
この方法は、深層防護を実現するものです。もし誰かがデータベース・テーブルの漏洩に成功しても、攻撃者にユーザーになりすますためのオープン・ドアを与えることはありません。
関連
-
[解決済み] CloudflareでオリジンIPアドレスの公開を防ぐには?
-
[解決済み] SSLエラー: ローカルの発行者証明書を取得できない
-
[解決済み] 後で平文を取り出すためのユーザーパスワードの保管について、倫理的にどのように取り組むべきでしょうか?
-
[解決済み] 認証と認可
-
[解決済み] JWT(JSONウェブトークン)の有効期限を自動的に延長する機能
-
[解決済み] なぜCSRF防止トークンをクッキーに入れるのが一般的なのですか?
-
[解決済み] 認証とセッション管理に関するSPAのベストプラクティス
-
[解決済み】「ログインしたままにする」 - 最適な方法とは?
-
[解決済み】Dockerとパスワードの保護
-
[解決済み] パスワードのハッシュ化と暗号化の違いについて
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Jenkins Scriptlerプラグインの置き換え?
-
[解決済み] System.Web.Security がアセンブリに存在しない
-
[解決済み] フォーム型Webサイト認証の決定版【終了しました
-
[解決済み] 認証と認可
-
[解決済み] HTTP_REFERERはどのような場合に空になるのでしょうか?
-
[解決済み] パスワードのハッシュ化と暗号化の違いについて
-
[解決済み] HTTP基本認証で使用されるBase64エンコーディングの目的、理由を教えてください。
-
[解決済み] APIキーとシークレットキーはどのように機能するのですか?APIキーやシークレットキーを他のアプリケーションに渡すのは安全ですか?
-
[解決済み] 分散ブルートフォースへの最適な対策は?
-
[解決済み] コマンドの標準入力に変数の値を渡すには?