4

ユーザーが 1 つの場所からのみ使用できるようにする Web アプリケーションがあります (つまり、ユーザーは 2 つの場所でアプリケーションを積極的に使用することはできません)。現在、1 つの Cookie セッションのみを有効にし、ユーザーのログイン時に既存のセッションを削除するという非常に一般的な方法でこれを機能させています。残念ながら、ユーザーが移動するため、1 つの Cookie のみを許可する方法は受け入れられないと言われました。さまざまなサイトに頻繁にアクセスし、毎回ログインするのにうんざりしています。簡単な解決策は、複数の Cookie を許可することですが、ユーザー アカウントが同時に 2 つの場所で使用されないようにする必要があるため、これはできません。

ユーザーが複数の場所でアクティブになることはできませんが、訪問するすべての場所で必ずしもログインする必要がないこのようなシステムを実装する最良の方法は何だろうと思っています。

私が持っていた考えられるアイデアの 1 つは、複数の Cookie を記録できるようにすることでしたが、Cookie がアクティブになると (アプリケーションをナビゲートするセッションに気付くと)、他のすべての Cookie は 15 分のような特定の時間制限でロックアウトされます。15 分間アクティブな Cookie セッションがない場合は、時間制限を超えるまで、任意の Cookie がログインして他の Cookie よりも優位に立つことができます。

編集:場所を離れた後もログインしたままでも問題ありません

4

3 に答える 3

1

これを行う 1 つの方法は、最後の IP アドレスとそのアクセスがあった時刻をログに記録することです。アクセスごとに、最終アクセスを確認できます。

最後のアクセスが同じ IP からのものである場合は、それらを通過させます。

最後のアクセスが別の IP からのものである場合は、それがどれくらい前のものかを確認してください。その後、ユーザーが別の場所からアクセスできるようになるまでアイドル状態になる必要があるカットオフ ポイントを定義できます。15分が妥当なようです。

これらはすべてバックエンドで実行できるため、より高いレベルのセキュリティが提供される可能性があります。

于 2013-02-24T19:04:37.883 に答える
1

ブラウザーは、ユーザーが自分の資格情報を保存できるようにします。この機能を使用して、手間をかけずに再ログインできるようにします。

于 2013-02-25T22:48:57.480 に答える
0

タイムアウトは必要ありません。複数の Cookie を許可しますが、アクティブな Cookie は 1 つだけです。

ユーザーがワークステーションを離れるときは、アプリケーションを閉じるように指示してください。これをやりやすいものにしてください。各ページに閉じるボタンを配置するかonBeforeUnload、ページが表示されなくなったことをキャッチしてサーバーに通知します。ユーザーがアプリケーションを閉じたときにセッションを維持しますが、現在非アクティブとしてマークします。

非アクティブなセッションに属する Cookie を含むリクエストを受け取った場合、ユーザーが他のセッションをアクティブにしていない場合は、問題なくそのセッションをアクティブにします。

ユーザーがまだ別のセッションをアクティブにしている場合は、怪しいことが起こっています。したがって、すべてのセッションを削除し、ユーザーをログイン画面に送ります。(それは彼らに教えます:))

于 2013-02-25T22:44:26.360 に答える