2008-08-11 9 views

答えて

8

This defect(見つけたhere)は、溶液への道を示す。 JBossで実行されるTomcatインスタンスは、デフォルトである "false"ではなく、emptySessionPath = "true"で設定されます。これは.../deploy/jboss-web.deployer/server.xmlで変更できます。 HTTPコネクタとAJPコネクタの両方にこのオプションがあります。

フィーチャ自体は、JSESSIONIDクッキーにコンテキストパス(例:http://example.com/fooの "foo")が含まれないようにするために使用されます。これをfalseに設定すると、アプリケーション間認証(一部のポータルフレームワークを使用して構築されたものを含む)に依存するアプリケーションが中断されます。しかし、問題のアプリケーションに悪影響を及ぼすことはありませんでした。

+0

私は、JBoss 6.1と連携し、ちょうどこの問題をヒットしています。 server.xmlにはemptySessionPathオプションはありません。では、バージョン6.1ではどのようにこれを行うことができますか? –

+1

誰かが興味があれば、私は解決策を見つけました。このスレッドで@ Rp-の答えを探してください:http://stackoverflow.com/questions/11028145/listening-for-login-events-in-jboss-as-6 –

0

この問題とそれが発生する特定のケースは、TomcatとJBossの問題です。 TomcatはemptySessionPath = "true"エフェクトを共有します(実際にはJBossはTomcatから継承します)。

セッション固定攻撃を防ぐために、サーブレット仕様(少なくともバージョン2.3以降)ではJSESSIONIDを特定のロジックに従って定義または再定義する必要はありませんが、これは実際TomcatとJBossのバグのようです。おそらく、これは後のバージョンでクリーンアップされているかもしれません。

0

解決策の1つは、セッションにクライアントアドレスを格納することです。レスポンス・ラッパーは、セッションに設定されているクライアント・アドレスがセッションにアクセスしているものと同じであることを検証する必要があります。

+0

あなたの提案は一般的なセッションハイジャックに役立ちます。特にセッション固定については対処していません。 –

0

私は4mのうちの1つからコード設定スニペットを知りました。そして私は以下の行を追加しました。しかし、アプリケーションにログインする前とログインする前にセッションIDを表示すると同じです。どのように私はセッションの固定をテストするだろう。

  1. D:\ jboss-5.1.0.GA \ bin \ run.cofファイルに以下の行を追加してください。 jbossアプリケーションの各context.xmlに「JAVA_OPTS =%JAVA_OPTS%-Dorg.apache.catalina.connector.Request.SESSION_ID_CHECK = false」、

  2. を設定します。 D:\ jboss-5.1.0.GA \サーバー\デフォルト\展開\ jbossweb.sar \ context.xmlに

関連する問題