작성
·
336
답변 2
0
개발자 도구에 노출이 되면 보안에 위험이 있는거 아닌가요?
또, sessionID 자체가 데이터와 관련없는 고유한 값이기 때문에 암호와는 아니지만, 보안이 된다고 생각하였습니다. 그 고유한 값에 cookie secret을 한번 더 적용하길래 혹시 이중 보안의 느낌으로 하신걸까요?
session, cookie로 검색해보았지만, 궁금증에 대한 내용을 찾지 못해 질문드립니다 ㅠㅠ
제로초님이 말씀하신게 이해가 잘 안되는데... 개발자도구에 노출될 수 있는 데이터에는 민감한 자료가 있으면 안되는 이유는 보안에 위험이 있어서 그런거 아닌가요?
그리고 처음 요청시에 데이터 노출을 https를 사용할 경우 해결가능하다고 하셨는데, 뒤에 "https를 쓰시더라도 개발자 도구에는 노출됩니다"라는 말이 이해가 잘 되지 않습니다. 개발자도구에 노출이 되는데 어떻게 해결이 된다는 의미인지 ㅠㅠ https를 사용했을 경우에 개발자도구에는 암호화 된 채로 데이터가 노출되는데 그 부분을 말씀하시는건지 ㅠㅠ
다시 정리하자면
기본적으로 개발자 도구에는 모든 데이터가 노출됩니다. 그래서 애초에 민감한 데이터는 노출하면 안 되고요. 그런데 sessionID같은 것은 어쩔 수 없이 노출됩니다. 민감한 데이터인데도 불구하고요. 애플리케이션 탭 보면 보이니까요. 그래서 암호화도 해두는 것이고요. 근데 문제는 암호화된 상태로 털려도 털린 그대로 악용이 가능합니다. 그래서 추가로 https를 적용해서 털리지도 않게 보호하는 겁니다.
0
감사합니다 ㅎㅎ 질문 2가지만 더 답변 부탁드리겠습니다 ㅠㅠ
질문1.
세션을 사용하여도 맨 처음 요청에는 데이터를 쿼리스트링에 담아서 요청해야하기 때문에 개발자 도구에 데이터가 노출되는데 이 부분은 https를 사용하는 것만으로 해결이 가능한가요?
질문2.
cookieParser("secret")이렇게 비밀키를 넣는 이유가 쿠키의 암호화를 위해서 한다고 배웠는데 express-session을 사용한다면, sessionID가 쿠키에 들어가기 때문에 이것 자체가 암호화가 되는 것이고, 그렇다면 cookieParser("secret")를 할 필요가 없는거 아닌가요? 혹시 이중 암호화로 보안을 높이기 위함인가요?
세션과 서명된 쿠키를 같이 사용하시는 이유가 무엇인지 궁금해서 질문 드립니다!
1. 네 해결됩니다. https를 쓰더라도 개발자도구에는 노출됩니다.
2. sessionID는 암호가 아닙니다. 이걸 cookie secret으로 암호화해야 암호가 되는 겁니다.
개발자도구에 노출되는 것은 보안에 위험이 아닙니다. 애초에 개발자도구에 노출될 수 있는 데이터에는 민감한 자료가 있으면 안 됩니다. 쿠키도 개발자도구에 노출되니까 마찬가지이고요. 그래서 sessionID같은 쿠키를 쿠키시크릿으로 암호화하는 겁니다.