私はstruts2、hibernate、springを使い、モデル駆動パターンを使っています。 2つの異なるユーザーとセッション(別のコンピュータ)を同時に使用してオブジェクトをフェッチしようとすると、深刻な問題があるようです。Struts2重大なセキュリティ上の問題?
詳細... ユーザーと名前の2つのメンバーを持つProjectオブジェクトがあるとします。 両方のユーザーは、Projectオブジェクト(もちろん、別のユーザーの別のオブジェクト)をフェッチしようとします。したがって、ユーザーAにはID 498のプロジェクトがあり、ユーザーBにはID 499のプロジェクトがあります。
strutsアクションは異なるIDを持つオブジェクトをフェッチしようとしていますが、両方のユーザー同じProjectオブジェクトインスタンスを持つため、同じ結果が表示されます。あなたはここで提供ログに見ることができる :
2011-12-08午前14時07分21秒LoginInterceptor [INFO]ユーザ17がpopulateProjectを呼び出している、paramsは:ID = 499 2011-12-08午前14時07分21秒をLoginInterceptor [INFO]ユーザー4がpopulateProjectを呼び出す、params:id = 498 2011-12-08 14:07:21 ProjectAction [INFO] Obj:[email protected]、セッションユーザーIDは17、obj.user.idは4 2011-12-08 14:07:21 ProjectAction [情報] Obj:[email protected]、セッションユーザーIDは4、obj.user.idは4
どのように解決できますか?
ありがとう、 Ron。
どのようにstruts2アクションのインスタンスを作成していますか? struts2-springプラグインを使用していますか?はいの場合は、アクションインスタンスを作成する場所にスプリングファイルを表示しますか? –
はい私はstruts2-springプラグインでそれを行います。私はそれぞれのアクション(またはそれらの大部分)ごとに別々のスプリング設定ファイルを持っています。 –
Ron
バネの設定ファイルを表示できますか、さらにアクションの範囲を定義していますか? –