2011-10-18 9 views
4

고급 프레임 워크를 사용하지 않고 쿠키가있는 java 서블릿에서 간단한 remember me 옵션을 구현해야합니다.java servlet 쿠키가있는 me 옵션 기억하기

먼저 로그인 할 때 쿠키를 만들어 브라우저 (클라이언트)에 응답하여 보냅니다. 쿠키에 저장 될 값은 username + password의 간단한 해시 일뿐입니다.

쿠키를 보내는 브라우저에서 들어오는 요청을 어떻게 관리해야합니까? 내 접근 방식은 사용자 이름 + 암호의 해시 값이 쿠키의 값과 같은 사용자가 있으면 등록 된 사용자를 확인하는 것입니다. 이 방법이 맞습니까?

또한 만료일의 메커니즘이 무엇인지 정확히 알지 못했습니다. 쿠키가 만료되면 브라우저가 쿠키를 삭제합니까, 쿠키가 만료되었는지 어떻게 확인합니까?

답변

4

HTTPS를 사용하지 않는 한 제안하는 방법은 매우 안전하지 않습니다. 몇 가지 종류의 세션 토큰 (예 : java.util.UUID.randomUUID() 사용)을 생성하여 쿠키로 설정하고 쿠키를이 세션 ID와 연결된 쿠키를 식별 할 수 있도록 서버 측 어딘가에 저장하는 것이 좋습니다.

사기가 발생하고 사용자 이름/암호와 사용하는 쿠키 ID간에 ​​직접적인 관련이 없다고 생각하면 특정 세션 쿠키를 재설정 할 수 있습니다. 하지만 참고 :이 방법은 여전히 ​​중간자 공격에 취약합니다.

만료와 관련 : 쿠키가 유효하지 않게되고 브라우저가 만료되면 쿠키가 삭제 될 수 있습니다. 하지만 3000 년 안에 쿠키를 설정할 수 있으므로 영원히 산다.