セッション固定を防止するセキュリティをプロジェクトに実装しようとしています。
セッションの作成と検証全体を処理するコンポーネント (特定のライブラリのフィルター、MagicFilter と呼びましょう) にアクセスできないため、別の方法を見つけようとしていました。
ここで、私のセッションで次のシナリオを検討してください。
- ユーザーがログインページを要求する
- MagicFilter は JSESSIONID などで Cookie を設定します
- 他のフィルターはいくつかの作業を行います...
- Java Spring MVC であるため、ユーザーが LoginView を見る前の最後のステップとして、LoginController 内のものにアクセスできます。ここでは、ビューを返す直前にセッションを .invalidate() します。
したがって、基本的に、ユーザーはログインページにいる間、実際の有効なセッション ID を持っていません。彼が MagicFilter にログインした後でのみ、別のセッション ID が割り当てられます。これは、LoginController でセッション ID を無効にするだけなので、その後に固執されます。
しかし、これは非常に大雑把に感じられ、MagicFilter の自動プロセスを「ハック」する必要がありました。これがセッションの固定に関して安全であるかどうかを誰でも確認できますか?