작성
·
291
0
express-session 미들웨어를 사용하면 좋은 점이 req.session을 id를 따로 지정해주지 않아도 개인의 저장공간 처럼 사용할 수 있다고 하셨는데, 4장에서 const session = {key:data}로 고유한 key로 사용자를 구분해 특정 사용자의 데이터만 객체로 넘겨주는 처리를 미들웨어 내부에서 알아서 해주는 건가요?
예를 들어 모든 사용자의 세션이 저장된 session 객체가 있다고 하면 요청으로 받은 key값으로 사용자 의 정보를 꺼내 req에 넣어 다음 미들웨어로 넘겨주는 형태인가요?
위가 맞다면 세션을 사용하면 유저의 데이터는 서버 안에 둬서 지킬 수 있지만 결국 브라우저에서 세션이 탈취되면 해커가 유저아이디로 로그인 할 수 있는거 아닌가요?
답변 1
1
네 맞습니다. 키를 자동으로 넣어주는 역할을 하고요. 브라우저에서 키이자 쿠키인 connect.sid가 탈취되면 남의 계정으로 로그인할 수 있습니다. 그래서 쿠키가 노출 안 되게 https, httpOnly 등의 옵션을 잘 줘야하는 겁니다.