問題タブ [session-fixation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
782 参照

session - Keycloak Spring Securityセットアップでセッション固定を防ぐ方法は?

キークロークのスプリングセキュリティアダプターによってスプリングセキュリティに接続されているIDおよびアクセスプロバイダーとしてキークロークを使用します。ユーザーがアプリケーションにログインしても、セッション ID が変更されないことがわかりました。これは、セッション固定攻撃への扉を開いています。キークロークとスプリング セキュリティの両方が、セッション固定を防止するソリューションを提供しますが、両方を組み合わせて使用​​すると、いずれも適切に機能しません。

キークロークのドキュメントから:

ログイン時にセッション ID の変更をオフにする

一部のプラットフォームでは、ログインに成功すると、セッション ID がデフォルトで変更され、セキュリティ攻撃ベクトルがプラグインされます。これをオフにする場合は、これを true に変更します。これはオプションです。デフォルト値は false です。

この機能をオフにしませんでしたが、ログイン手順の後もセッション ID は同じままです。

Spring セキュリティには 、SessionAuthenticationStrategyChangeSessionIdAuthenticationStrategyおよびの 2 つの実装が付属SessionFixationProtectionStrategyしていますが、いずれもうまくいきません。

キークロークのドキュメントでは、「現在サポートされていませんSessionFixationProtectionStrategyというヒントを見つけることができますが、このセットアップでセッション固定のリスクに対処する方法についてのアドバイスはありません。しかし、このヒントによれば、 「ユニバーサル ログアウトが機能しなくなる」という結果で、春のセキュリティでセッション ID を変更することはまだ可能であるはずです。しかし、これでもうまくいきません(トレードオフを行ってユニバーサルログアウトを失う可能性があります)いくつかの方法で春のセキュリティでセッションIDを変更しようとしました(構成ファイルの抽出):

  1. この手順に従って、デフォルトのセッション管理フィルターを上書きします
  1. この命令でデフォルトのセッション管理フィルターを上書きする
  1. spring のドキュメントに従って、デフォルトのセッション管理フィルターの動作を変更する

キークロークの春のセキュリティ環境内でのセッションの固定を防ぐためのヒントをいただければ幸いです。