2011-10-30 2 views
0

사용자를 성공적으로 인증 할 때 새 세션 토큰 또는 세션 자격 증명을 발급하는 방법. 이전 세션 토큰이나 자격 증명뿐만 아니라 이전 세션과 관련된 서버 컨텍스트 (사용자가 로그인했는지 또는 로그 아웃했는지)를 모두 삭제하려고합니다.성공적으로 인증 할 때 새 세션 토큰 또는 세션 자격 증명을 발급하는 방법

로그인 후에 세션 고정 공격을 피하기 위해 새로운 jsession id가 필요합니다.

샘플 코드를 도와주세요.

답변

0

사용자가 인증되면 세션을 무효화하면 더 이상 인증되지 않습니다. 왜 그걸 할거야? 나는 그 요점을 보지 못한다.

로그 아웃 후 세션을 무효화하려면 session.invalidate()를 사용하십시오.

+0

사실, 무효화하고 싶지 않습니다 ... 로그인 후 세션 고정 공격을 피하기 위해 새로운 jsession id가 필요합니다. 또한 모든 세션 변수/속성을 유지하려고합니다. –

+0

흥미 롭습니다 (세션 고정 공격이라는 용어를 알지 못했습니다). 해결책은 간단합니다 : URL 재 작성을 비활성화하고 쿠키 만 사용하십시오 : http://stackoverflow.com/questions/962729/is-it-possible-to-disable-jsessionid-in-tomcat-servlet. 또한 로그인시 사용자 정의 쿠키를 추가하고이 쿠키가없는 인증 된 사용자의 요청을 적절한 값으로 거부하는 필터를 설정할 수 있습니다. –

+0

내 URL에 jsessionid..session 고정이 포함되어 있지 않습니다. 고정은 공격자가 유효 세션 아이디를 가로 채고 희생자를 대신하여 승인되지 않은 트랜잭션을 수행 할 수있는 보안 공격입니다. 솔루션을 얻었습니다. 기존 세션 데이터를 모두 저장하고 기존 세션을 무효화 한 다음 새 세션을 만들어 데이터를 추가해야합니다. –

관련 문제