JBossでのセッション固定の解決

java jboss security

JBossで実行されているJava Webアプリケーションでは、特定の種類のセッションハイジャックである Session Fixationを防ぐ必要があります。 しかし、標準の慣用句http://www.owasp.org/index.php/Session_Fixation_in_JavaはJBossでは動作しません]。 これは回避できますか?

  9  5


ベストアンサー

https://jira.jboss.org/jira/browse/JBAS-4436 [この不具合](http://forum.springframework.org/showthread.php?t=54688[here]に掲載されている)は解決策への道を示しています。 JBossで実行されるTomcatインスタンスは、デフォルトの “false”ではなく、emptySessionPath = “true”で設定されています。 これは `…​ / deploy / jboss-web.deployer / server.xml`で修正できます。 HTTPとAJPの両方のコネクタにこのオプションがあります。

機能自体はコンテキストパスを削除するために使用されます(例: JSESSIONID Cookieに含まれていたhttp://example.com/fooの “foo”) これをfalseに設定すると、いくつかのポータルフレームワークを使用して構築されたものを含む、クロスアプリケーション認証に依存するアプリケーションが機能しなくなります。 ただし、問題のアプリケーションに悪影響はありませんでした。

8


この問題とそれが発生する特定のケースは、JBossと同様にTomcatの問題です。 TomcatはemptySessionPath = “true”効果を共有します(実際にはJBossはTomcatからそれを継承します)。

セッション固定攻撃を防ごうとしているが、サーブレット仕様(少なくともバージョン2.3)では、実際には特定のロジックに従ってJSESSIONIDを定義したり再定義したりする必要がない場合、これは本当にTomcatとJBossのバグのようです。 おそらくこれは後のバージョンで片付けられたでしょう。

0


1つの回避策はセッションにクライアントアドレスを保存することです。 応答ラッパーは、セッションに設定されたクライアントアドレスがセッションにアクセスするものと同じであることを検証する必要があります。

0


私はフォーラムの1つから以下のコード設定スニペットを知るようになりました。 そして私は以下の行を追加しました。 しかし、アプリケーションにログインする前後にセッションIDを出力しても同じです。 セッション固定をテストする方法

  1. D:\ jboss-5.1.0.GA \ bin \ run.cofファイルを開き、以下の行を追加します。 “JAVA_OPTS =%JAVA_OPTS%-Dorg.apache.catalina.connector.Request.SESSION_ID_CHECK = false”を設定してください。

  2. jbossアプリケーションの各context.xmlにあります。 D:\ jboss-5.1.0.GA \ server \ default \ deploy \ jbossweb.sar \ context.xml

0


タイトルとURLをコピーしました