
159
9
장
쿠키와 세션
쿠키를 남용하면 사용자가 눈치챕니다.
사용자의 컴퓨터에 쿠키나 데이터를 너무 많이 저장하면 사용자를 짜증나게 할 수 있으므로 피
해야 합니다. 쿠키는 최소한으로 유지하세요.
가급적 쿠키보다 세션을 사용하세요.
대부분의 경우
세션
을 통해 상태를 관리하며 일반적으로 세션이 더 현명한 선택입니다. 세션은
더 쉽고, 사용자에게 악영향도 적으며, 더 안전합니다. 물론 세션 자체가 쿠키에 의존하긴 하지
만, 익스프레스를 쓰면 번거로운 작업이 많이 줄어듭니다.
NOTE
_ 쿠키는 마법이 아닙니다. 서버에서 클라이언트에 쿠키를 저장할 때는 이름-값 쌍을 담은
Set
-
Cookie
헤더를 보내고, 클라이언트에서 서버에 쿠키를 요청할 때는 쿠키 값을 담은
Cookie
요청 헤더를 보
냅니다.
9.1
자격 증명 위임
쿠키 보안을 위해서는
쿠키 시크릿
cookie
secret
이 필요합니다. 쿠키 시크릿은 서버에서 쿠키를 클
라이언트에 보내기 전에 암호화할 때 사용하는 문자열입니다. 쿠키 시크릿은 기억해야 할 비밀
번호가 아니므로 랜덤한 문자열을 써도 됩니다. 필자는 보통
xkcd
1
의 랜덤 비밀번호 생성기를
써서 쿠키 시크릿을 만들거나, 랜덤한 숫자를 사용합니다.
서드파티를 통해 쿠키 시크릿이나 데이터베이스 비밀번호,
API
토큰(트위터, 페이스북 등)의
자격 증명 ...