강의

멘토링

커뮤니티

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

spc_pok님의 프로필 이미지
spc_pok

작성한 질문수

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

세션에 멤버데이터는 어느수준까지 담는게 좋은가요?

해결된 질문

작성

·

773

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]

안녕하세요 훌륭한 강의 항상 감사하며 듣고있습니다.
로그인 기능을 구현시에 세션에 멤버 객체를 담는 예제를 방금 보고 와서 의문점이 생겨서 질문드립니다.
 
예전에 학원에서 수업들을때 유저의 민감한 정보는 세션에 담아두지 말라고 들었는데요 솔직히 그때도 왜 그래야 하는지 개발진의 실수를 막기 위해서 그런건지 의문이 많았었습니다.
 
세션은 클라이언트에서 직접 접근할 수 없는 서버측 메모리에 있는 데이터 인데 여기에 민감한 데이터를 담는다고 보안상 문제가 되는 경우가 있을까 싶거든요
 
선생님께서는 예제이기때문에 유저의 모든 정보를 담은 객체를 세션에 담으신건지 아니면 실제 서비스할때에도 유저의 모든정보를 세션에 담아두고 db사용을 줄이는게 맞는지 궁금해서 질문드립니다.
만약 민감한 정보를 빼야한다면 자주 사용하는 덜 민감한 정보의 필드만 존재하는 객체를 하나 새로 만들어서 세션에 저장하는게 좋을까요?

답변 1

1

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

Q) 세션은 클라이언트에서 직접 접근할 수 없는 서버측 메모리에 있는 데이터 인데 여기에 민감한 데이터를 담는다고 보안상 문제가 되는 경우가 있을까 싶거든요

 

A) 이미 시스템에 접속되어 세션이 연결되어 있는 상태를 가로채기 하는 공격인 세션 하이재킹 때문에 민감한 정보는 반드시 암호화를 거쳐야 합니다. 

세션 하이재킹(Session Hijacking) 공격 : 네이버 블로그 (naver.com)

 

Q) 선생님께서는 예제이기때문에 유저의 모든 정보를 담은 객체를 세션에 담으신건지 아니면 실제 서비스할때에도 유저의 모든정보를 세션에 담아두고 db사용을 줄이는게 맞는지 궁금해서 질문드립니다. 만약 민감한 정보를 빼야한다면 자주 사용하는 덜 민감한 정보의 필드만 존재하는 객체를 하나 새로 만들어서 세션에 저장하는게 좋을까요?

 

A) 아래의 링크에서도 설명하고 있지만 세션은 최소화해야 하며 민감한 정보는 암호화를 하셔야 합니다. 객체에는 최소한의 데이터만 담아서 사용해주세요.

세션에 넣는 회원데이터에 대해서 질문드립니다! - 인프런 | 질문 & 답변 (inflearn.com)

감사합니다.

spc_pok님의 프로필 이미지
spc_pok

작성한 질문수

질문하기