3

1. 同じユーザー アカウントに対して 2 つの異なる JSESSIONID が存在する、または 2. 1 つのブラウザの 2 つのタブが同じ JSESSIONID を参照する、という状況 を防ぐ必要があります。

助言がありますか?既存のセッションが検出された場合、ユーザーは次のいずれかを実行できます: a) 2 回目の試行を終了する b) 既存のセッションを強制終了し (暗殺者!)、新しいセッションを開始する。

サーバー側のソリューションが優先されます。つまり、ユーザーが JSESSIONID を URL に強制する Cookie をオフにすることに依存したくありません。

4

2 に答える 2

1

input各ページに一意のトークンを持つ隠しフィールドを埋め込むことが、このような問題の唯一の解決策のように思えます。まったく同じ URL であっても、これが 1 つのタブと別のタブを区別する唯一の方法のようです。

ただし、あなたがしていることはかなり悪い習慣のように思えることに注意してください。ユーザーが複数のタブを使用できないようにする特定の理由はありますか?

于 2012-07-09T20:34:49.760 に答える
0

パート 1 は、ユーザーの現在のセッション ID をユーザー SID のマップと照合するシングルトン パターンを使用して実行できます。

パート 2 は、ユーザーが正しい情報を読み取ることを確認する必要があるトランザクション webapps で理解できます (古い値を持つ 1 つのタブと新しい値を持つ 1 つのタブを使用するのではなく、シナリオ)... 同じセッション ID を使用できます。マップし、dom に注入し、javascript を使用して検証します。

編集。パート 2 の検証は、client-sessionid のマップに対するフィルターでより適切に実行できます。また、オブジェクトを正しく定義すると、真に一意のシングルトン インスタンスが存在することが保証されます。

于 2012-07-09T20:53:32.453 に答える