inflearn logo
강의

Course

Instructor

[Renewed] Node.js Textbook - From Basics to Project Practice

express-session middleware

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

395

yongs84253028

11 asked

0

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

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

nodejs mysql mongodb Sequelize

Answer 2

0

yongs84253028

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

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

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

0

zerocho

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

0

yongs84253028

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

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

0

zerocho

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

 

0

yongs84253028

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

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

0

zerocho

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

0

yongs84253028

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

0

zerocho

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

0

yongs84253028

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

질문1.

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

질문2. 

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

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

1

zerocho

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

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

리눅스 노드 설치시 패키지

0

162

0

socket.js 에서 referer로부터 roomId를 가져올 때

0

907

3

스트리밍 방식으로 대용량 파일 업로드 & 다운로드 관련 질문

0

2281

2

a[title] 질문드립니다

0

376

1

리뉴얼 강의 및 공부 방법

0

583

1

jwt decode

0

1130

1

node.js 교과서 3판 질문드립니다

0

392

1

passport와 jwt

0

434

1

리뉴얼 강의

0

421

2

혹시 Node.js 교과서 3판 이북은 언제 나오나요?

0

355

1

몽고디비 사용자도 MYSQL부분을 들어야 하나요???

0

482

1

sql 쿼리 로그는 어떤 모듈이 작성하나요?

0

506

2

nunjucks res.render('error'); 작동을 안합니다.

0

512

1

질문있습니다.

0

348

1

multer 한글 파일 업로드시 파일명이 깨져요.

1

3536

1

수업자료는 어디있나요?

0

368

1

질문 있습니디

0

237

1

multer 사용시 file 외 name값은 못받나용?

0

417

1

코드 중복 부분 질문드립니다.

0

299

1

api 만드는 이유 질문드립니다.

0

288

1

Strategy의 done에 대해 질문드립니다.

0

367

1

안녕하세요 fs 권한 관련 질문드립니다

0

451

1

시퀄라이즈 연결질문...

0

500

2

res.setHeader vs res.cookie

0

1789

3