2008-08-11 4 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

. 내 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

한 가지 해결 방법은 클라이언트 주소를 세션에 저장하는 것입니다. 응답 랩퍼는 세션에 설정된 클라이언트 주소가 세션에 액세스하는 주소와 동일한 지 검증해야합니다.

+0

제안은 세션 하이재킹, 세션 고정을 구체적으로 다루지는 않습니다. –

0

아래 코드 네임 중 하나에서 코드 설정 스 니펫을 알게되었습니다. 그리고 나는 아래 줄을 추가했다. 하지만 응용 프로그램에 로그인하기 전과 후에 세션 ID를 인쇄 할 때도 동일합니다. 어떻게 세션 고정 테스트 것입니다.

  1. D : \ jboss-5.1.0.GA \ bin \ run.cof 파일에 다음 행을 추가하십시오. 세트 "JAVA_OPTS = % JAVA_OPTS % -Dorg.apache.catalina.connector.Request.SESSION_ID_CHECK = 거짓"JBoss의 각 애플리케이션의 context.xml에

  2. . D : \ jboss-5.1.0.GA \ 서버 \ 기본 \ 배포 \ jbossweb.sar \ context.xml에 내가 보스 6.1와 협력 단지이 문제를 공격하고있어

관련 문제