自分のWebサイトにアクセスするたびにログインしなくても済むように、ユーザーがクリックできるチェックボックスを自分のWebサイトに設定します。これを実装するには、自分のコンピュータにクッキーを保存する必要があることを知っていますが、そのクッキーには何を含めるべきですか?
また、このCookieがセキュリティ上の脆弱性を提示するのを防ぐために注意を払うべき一般的な誤りはありますか。
ここで説明した この戦略をベストプラクティス (2006)または ここで説明した更新された戦略 (2015)として使用できます。
このアプローチは、多層防御を提供します。誰かがデータベーステーブルを漏洩させたとしても、それは攻撃者になりすましのユーザーに対する門戸を開かせません。
ユーザーIDとトークンを保管します。ユーザーがサイトに戻ったら、これら2つの情報をデータベースエントリのような永続的なものと比較します。
セキュリティに関しては、誰かがクッキーを変更して追加の利益を得ることを可能にするようなものをそこに入れないでください。たとえば、自分のユーザーグループやパスワードを保存しないでください。セキュリティを回避するような変更が可能なものはすべてCookieに保存しないでください。
自分のUserIdとRememberMeTokenを保存します。彼らがログインしたときに確認したことを確認すると、新しいRememberMeTokenが生成されます(マークされている他のマシンは無効になります)。
彼らが戻ってきたら、私を覚えているトークンでそれらを調べ、UserIdが一致することを確認してください。
私自身が持続的セッションを調査したところ、セキュリティ上のリスクに見合う価値がないことがわかりました。絶対に必要な場合に使用してください。ただし、このようなセッションは認証が不十分であると見なし、攻撃者にとって価値があると思われるものはすべて新しいログインを強制する必要があります。
その理由はもちろん、あなたの持続的セッションを含むあなたのクッキーはとても簡単に盗まれるということです。
あなたのクッキーを盗む4つの方法(からの@splattne
ページの Jens Rolandによるコメント から):