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

이룸님의 프로필 이미지
이룸

작성한 질문수

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

express-session 미들웨어

세션쿠키 용어 질문입니다.

작성

·

342

0

용어에 대해서 제가 정확히 알고 있는게 맞는지 궁금하여 질문드립니다.

세션쿠키라는 용어는 단순히 "세션으로 처리하는 쿠키"라고 생각해도 될까요?

답변 2

0

이룸님의 프로필 이미지
이룸
질문자

개발자 도구에 노출이 되면 보안에 위험이 있는거 아닌가요?

또, sessionID 자체가 데이터와 관련없는 고유한 값이기 때문에 암호와는 아니지만, 보안이 된다고 생각하였습니다. 그 고유한 값에 cookie secret을 한번 더 적용하길래 혹시 이중 보안의 느낌으로 하신걸까요?

session, cookie로 검색해보았지만, 궁금증에 대한 내용을 찾지 못해 질문드립니다 ㅠㅠ

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

개발자도구에 노출되는 것은 보안에 위험이 아닙니다. 애초에 개발자도구에 노출될 수 있는 데이터에는 민감한 자료가 있으면 안 됩니다. 쿠키도 개발자도구에 노출되니까 마찬가지이고요. 그래서 sessionID같은 쿠키를 쿠키시크릿으로 암호화하는 겁니다.

이룸님의 프로필 이미지
이룸
질문자

제로초님이 말씀하신게 이해가 잘 안되는데... 개발자도구에 노출될 수 있는 데이터에는 민감한 자료가 있으면 안되는 이유는 보안에 위험이 있어서 그런거 아닌가요? 

그리고 처음 요청시에 데이터 노출을 https를 사용할 경우 해결가능하다고 하셨는데,  뒤에 "https를 쓰시더라도 개발자 도구에는 노출됩니다"라는 말이 이해가 잘 되지 않습니다. 개발자도구에 노출이 되는데 어떻게 해결이 된다는 의미인지 ㅠㅠ https를 사용했을 경우에 개발자도구에는 암호화 된 채로 데이터가 노출되는데 그 부분을 말씀하시는건지 ㅠㅠ

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

다시 정리하자면
기본적으로 개발자 도구에는 모든 데이터가 노출됩니다. 그래서 애초에 민감한 데이터는 노출하면 안 되고요. 그런데 sessionID같은 것은 어쩔 수 없이 노출됩니다. 민감한 데이터인데도 불구하고요. 애플리케이션 탭 보면 보이니까요. 그래서 암호화도 해두는 것이고요. 근데 문제는 암호화된 상태로 털려도 털린 그대로 악용이 가능합니다. 그래서 추가로 https를 적용해서 털리지도 않게 보호하는 겁니다.

 

이룸님의 프로필 이미지
이룸
질문자

암호화 된 상태에서 털어도 악용이 되는줄 몰랐네요! 정리해주셔서 너무 감사합니다!!

혹시 보안, 인증, 쿠키, 세션 이런쪽 관련해서 추천해주실 만한 책이 있으실까요? 

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

보안/인증 관련해서는 딱히 보고 공부한 책은 없습니다. 쿠키/세션 등에 대해서는 HTTP 완벽 가이드 책이 좋습니다.

이룸님의 프로필 이미지
이룸
질문자

답변 친절히 해주셔서 너무 감사드립니다!

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

서버쪽의 세션과 연결하기 위해 사용하는 프론트쪽의 쿠키입니다~

이룸님의 프로필 이미지
이룸
질문자

감사합니다 ㅎㅎ 질문 2가지만 더 답변 부탁드리겠습니다 ㅠㅠ

질문1.

세션을 사용하여도 맨 처음 요청에는 데이터를 쿼리스트링에 담아서 요청해야하기 때문에 개발자 도구에 데이터가 노출되는데 이 부분은 https를 사용하는 것만으로 해결이 가능한가요?

질문2. 

cookieParser("secret")이렇게 비밀키를 넣는 이유가 쿠키의 암호화를 위해서 한다고 배웠는데 express-session을 사용한다면, sessionID가 쿠키에 들어가기 때문에 이것 자체가 암호화가 되는 것이고, 그렇다면 cookieParser("secret")를 할 필요가 없는거 아닌가요? 혹시 이중 암호화로 보안을 높이기 위함인가요?

세션과 서명된 쿠키를 같이 사용하시는 이유가 무엇인지 궁금해서 질문 드립니다!

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

1. 네 해결됩니다. https를 쓰더라도 개발자도구에는 노출됩니다.

2. sessionID는 암호가 아닙니다. 이걸 cookie secret으로 암호화해야 암호가 되는 겁니다.

이룸님의 프로필 이미지
이룸

작성한 질문수

질문하기