2010-11-25 2 views
4

내가 이해하는 한, 사용자가 스프링 보안에 로그인하면 세션이 무효화되고 새 세션이 만들어집니다.
그래서 http에서 clear sessionID 쿠키를 사용하면 스프링 보안은 새로운 세션 ID '보안'쿠키를 설정해야합니다.이 쿠키는 후속 https 요청에서만 브라우저에서 다시 전송됩니다.
'로그인 한'사용자가 https에서 http로 전환 할 때 세션의 추적을 유지하기 위해 비보안 쿠키로 저장되어있는 sessionID 쿠키가 있어야합니다.
스프링이 어떻게 관리하는지 이해할 수 없습니다.
사용자가 http를 탐색 한 후 보안 sessionID 쿠키와 동일한 clear sessionID 쿠키가 있고 이것이 세계에 표시되는 것입니까? 누군가 그것을 읽고 세션을 공중 납치 할 수 있습니다.
스프링 보안 흐름을 이해할 수 없어 누군가가 어떻게 작동하는지 설명 할 수 있습니까?
감사합니다.사용자 로그인 및 세션 하이재킹 후 스프링 보안 쿠키

답변

0

당신이 설명한 바로 그 이유 때문에 HTTP와 HTTPS 세션을 함께 사용하지 않는 것이 가장 좋습니다. 실제로 그것은 HTTPS를 통해 로그인 한 다음 HTTP가 작동하지 않을 것입니다 (브라우저가 보안 세션 쿠키를 보내지 않음).

는 [...] 세션은 이후 HTTP에서 사용할 수 없습니다 수 세션 쿠키가 "보안"으로 표시되는 HTTPS에서 을 만들었습니다. 브라우저는 쿠키를 서버로 보내지 않으며 모든 세션 상태 이 손실됩니다 (보안 컨텍스트 정보 포함). HTTP에서 세션 시작 첫번째 세션 쿠키로 표시되지 않습니다 로 작동합니다 보안 (당신은 또한 로그인 에 새로운 보안 세션을 생성 에서 그것을 방지하기 위해 봄 보안의 세션 고정 보호 지원을 비활성화해야합니다 (나중에 새로운 세션을 만들 수 있습니다 .) HTTP와 HTTPS를 전환하는 은 일반적으로 좋은 아이디어가 아닙니다. 은 전혀 HTTP를 사용하는 응용 프로그램이 man-in- the-middle 공격. 진정한 보안을 위해 사용자는에 내 사이트에 액세스해야합니다.HTTPS를 입력하고 로그 아웃 할 때까지 계속 사용하십시오. HTTP를 통해 액세스 한 페이지에서 HTTPS 링크를 클릭해도 잠재적으로 위험한 것입니다.

http://static.springsource.org/spring-security/site/faq.html

에서