JSFフレームワークを使用するWebアプリケーションがあります。 私はWebアプリケーションのセキュリティ部分に深く関わっているので、独自のセッションID(暗号化アルゴリズムを使用し、ユーザーがログインすると作成されるすべての新しいセッションに割り当てます)を生成しようとしていました。JSFで自分のセッションIDを生成する
誰でもセッションで手動生成されたセッションIDを設定し、セッションIDが送信されることを要求ごとに確保する方法に私を導いてください
おかげ
JSFフレームワークを使用するWebアプリケーションがあります。 私はWebアプリケーションのセキュリティ部分に深く関わっているので、独自のセッションID(暗号化アルゴリズムを使用し、ユーザーがログインすると作成されるすべての新しいセッションに割り当てます)を生成しようとしていました。JSFで自分のセッションIDを生成する
誰でもセッションで手動生成されたセッションIDを設定し、セッションIDが送信されることを要求ごとに確保する方法に私を導いてください
おかげ
コンテナ固有の拡張子を使用せずに、コンテナによって生成されたものよりも安全なセッションIDを生成することは本当に疑問ですが、ここではできることがあります。
サーバーへのすべての要求を代行受信するサーブレットフィルタを作成します。
リクエストが到着したら、このリクエストのセッションがすでに存在するかどうかを確認します(getSession(false)
を使用)。存在する場合は、リクエストから特定のCookie MY_SESSION_IDを抽出し、その値をセッションに格納されている値と比較します。一致しない場合は、要求を拒否します。
セッションが存在しない場合は(getSession(true)
を使用して)セッションを作成し、スーパーセキュリティで保護されたセッションIDを生成し、セッション属性として保存し、応答にCookie MY_SESSION_IDを追加します。
厳密には必要ない場合でも、セッションを自動的に作成するという欠点があります。しかし、これはコンポーネントフレームワークのJSPを使用するときのほとんどの場合です。
私は既にすべての私の要求を傍受するように実装されたフィルタを持っています。また、新しいセッションを作成したり、既存のセッションにアクセスすることもできます。しかし、セッション属性にスーパーセキュアなセッションIDを格納し、応答にクッキーMY_SESSION_IDを追加すると、私のクエリは絶対に解決されます... – AngelsandDemons
JSFのアプリケーション層でこれを実行しようとするが、成功することはほとんどありません。。。I下位レベルのAPIでこのタスクを実行します。サーブレットコンテナを想定しています。
私は2つのアプローチを考えることができます:(1でも存在する場合)
最初のアプローチの実行可能性についてコメントするための情報が不十分です。
セッションクッキーの名前を決定する必要があります(通常はJSESSIONIDですが、必須ではありません)。あなたのAPIはなります
コンテナで生成されたものを使用しないのはなぜですか? –
@JB Nizet純粋にセキュリティ上の理由から、私のアプリケーションでは、セッションIDを強力な暗号化アルゴリズムを使って手動で生成する必要があります。セッションIDの設定方法を教えてください。 – AngelsandDemons
@McDowell返信いただきありがとうございます。SPIを実装するにはプロとコンズを所有していますが、SPIを適切に保護するための余分なブテンがあり、コンテナ固有のSPIの機能をコンテナに統合する方法を検討しています...私は探していますより堅牢なソリューションではなく、コンテナSPIを実装しようとしています。JavaまたはJ2EEの観点からの任意のソリューションは高く評価されます。 – AngelsandDemons