8

ユーザーがサイトにログインし、「私を覚えている」と言うと、ユーザーの一意の識別子を取得し、キーサイズ 256 の RijndaelManaged でこれを暗号化し、有効期限が設定された httponly Cookie にこれを配置します.. 120 日、サーバーへのリクエストが成功するたびに有効期限が更新されます。

オプションで、ユーザー エージェントと ipv4 アドレスの一部 (最後の 2 オクテット) に基づいて初期化ベクトルを生成します。

明らかに、これには実際の有効期限システムが組み込まれていないため、ユーザーは技術的にこの暗号化されたキーを永久に使用できます (サーバー側のキーを変更しない場合)。

この機能を許可するには、ユーザーがログインをバイパスして一意の ID (GUID) を提供できるようにする必要があるという事実を考慮しましたが、GUID だけでは実際のユーザーの GUID を推測するのは非常に難しいと考えました。しかし、GUIDを生成するボットノットによる攻撃に対してサイトを開いたままにしておきます(合法的なGUIDを見つけることがどれほど現実的かわかりません)..これが、サーバーが暗号化キーを知っている場所に暗号化があり、オプションでivブラウザと ip 部分に固有です。

サーバーがユーザーに関連付けられたチケットを発行し、これらのチケットの有効期限が既知であるため、サーバーが有効期限を管理し続ける別のアプローチを検討する必要がありますか? 有効期限を本当に気にする必要がありますか?私を覚えているのは結局私を覚えているのですか?

謙虚になるのを楽しみにしています;)、乾杯。

4

3 に答える 3

6

非常によく似た質問。

あなたの質問に対する解決策は、このブログ投稿にあります

「Persistent Login Cookie Best Practice」では、Web サイトでおなじみの「Remember Me」オプションを実装するための比較的安全なアプローチについて説明しています。この記事では、そのアプローチのすべての利点を維持しながら、永続的なログイン Cookie が攻撃者によって盗まれて使用されたときに検出できるようにする改善を提案します。

Jacco がコメントで述べているように、安全な認証に関する詳細情報については、 The Definitive Guide To Website Authentication をお読みください。

于 2009-03-27T12:26:27.130 に答える
0

Open Idのようなものを検討しましたか? SOが使用するように。

于 2009-03-27T12:18:03.657 に答える
0

記憶されている情報はどれくらい重要ですか?非常に個人的または重要なものではない場合は、Cookie に GUID を入れてください。

計算に IP アドレスを含めることは、パブリック ネットワークを使用しているユーザーをすぐに忘れてしまうため、おそらく悪い考えです。

2 128の可能性があるため、力ずくで GUID を見つけるのはばかげています。

于 2009-03-27T12:19:17.523 に答える