인프런 커뮤니티 질문&답변

Gretel님의 프로필 이미지
Gretel

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

로그인 처리하기 - 세션 동작 방식

세션을 이용한 로그인에 관해 질문이 있습니다

작성

·

271

0

로그인 세션을 생성할때 해당하는 유저의 객체를 그대로 담아서 생성해도 괜찮은지 궁금합니다.

 

제가 토이프로젝트를 하면서 로그인의 경우는 사용자가 로그인 요청을 했을때 정보가 일치하다면 해당 객체를 session.addAttribute("user",유저객체); 이런 식으로 세션을 생성했고

로그인이 필요한 로직(글,댓글,예약 등)의 경우는 컨트롤러에서 @sessionAttribute를 사용하여 해당 세션이 유효한지를 체크하고 해당 객체의 PK를 가져와 해당 로직을 수행할 수 있는 유저인지 확인하는 방식을 수행했습니다.

제가 생각하는게 맞는지 모르겠지만 이 경우엔 유저의 개인정보가 고스란히 담겨있어서 안전하지 못하다는 생각이 드는데 사용자는 단순히 세션ID만 알고 있으니 상관이 없는지 아니면 보안상의 문제가 있는지 궁금합니다.

 

이런 방식보다는 사용자의 PK만 세션으로 생성해서 보내는게 좋을까요? 아니면 더 좋은 방식이 있을까요?

 

 

답변 1

2

안녕하세요. Gretel님, 공식 서포터즈 David입니다.

세션에 유저객체를 통째로 담을 필요가 있는지 고민해보아야 합니다. 사용자 인증이 목적이라면 인증에 필요한 정보만 담고 있는게 낫습니다. 세션에 저장할 인증용 객체를 따로 만들어 사용하시면 걱정하시는 부분을 해결할 수 있습니다. ex. SessionMember { id, name .. }

감사합니다.

Gretel님의 프로필 이미지
Gretel

작성한 질문수

질문하기