10

これは別の質問の分岐です: Web サイトに「remember me」を実装する最良の方法は何ですか?

一番の答えはこれを実装することです: http://jaspan.com/improved_persistent_login_cookie_best_practice

まとめ:

乱数をシリーズ トークンとして使用し、別の乱数をログイン トークンとして使用します。ログイン状態維持 Cookie にそれらをユーザー名とともに配置します。2 番目の通常のセッション Cookie を割り当てます。ユーザーがセッション Cookie なしで到着するたびに、Stay Logged In Cookie を消費します。今度は新しいランダム ログイン トークンを使用して新しいものを発行し、シリーズ トークンは同じにします。

なぜユーザー名を含めるのですか? それはどのように役立ちますか?シリーズ トークンは、ユーザーとシリーズを識別するのに十分なはずです。シリーズ トークンは、攻撃者がすべてのユーザー名を推測してサイトに一度にアクセスし、全員をログアウトさせる DoS 攻撃を防ぐために、このアプローチに追加されました。しかし、なぜユーザー名をそのままにしておくのが理にかなっているのですか?

4

2 に答える 2

0

これに関する私の推測:

ユーザー名は監査用です。クライアントが認証のためにトークンと一緒に送信する必要がある場合は、どのユーザーが認証を試みているかがわかります。これにより、トークンが間違っていることに適切な方法で対応できます。

認証中にのみトークンを要求すると、実際にトークンを試行したユーザーがわからず、一致した場合は誰かにアクセスを許可するだけで、失敗した場合は何もできません。誰かが盲目的にそれらを乗り越えようとすることができます。

それを念頭に置いて、ユーザー名とトークンの両方を使用することに決めたとしましょう。トークンが間違っている場合は、そのユーザーの他のすべてのトークンを削除できます。しかし、それはシステムを DOS に開放します。攻撃者は誰でも自由にログアウトできます。そのため、そのシリーズが追加されました。

ユーザー名である必要はありません。ユーザーを識別できる他の情報も機能します。

于 2015-10-30T09:53:07.937 に答える
0

ユーザー名と番号は、新しいセッション Cookie を発行する前に、サーバー上でペアとして検索されます。ユーザー名がないと、安全性が低くなり (番号を盗んだ場合に別のユーザーを使用して再生できます)、検索が難しくなります。

于 2012-06-09T01:05:46.123 に答える