
145
9
장
-
쿠키와 세션
| 세션을 쿠키보다 우선시하십시오 |
대부분 세션을 써서 상태를 관리할 수 있으며 일반적으로 세션을 쓰는 편이 더 낫습니다. 세션
은 더 쉽고 사용자 스토리지를 남용할 걱정도 없으며, 보안도 더 낫습니다. 물론 세션도 쿠키에
의존하지만, 세션을 쓰면 익스프레스가 어려운 작업을 많이 덜어줍니다.
NOTE
_
쿠키는 마법이 아닙니다. 서버가 클라이언트에 쿠키를 저장하려 할 때는 이름/값 쌍이 들어 있는
Set
-
Cookie
헤더를 보냅니다. 클라이언트는 자신이 저장하고 있는 쿠키와 관련된 요청을 보낼 때는 쿠키
값이 들어 있는 요청 헤더를 여러 개 보냅니다.
9.1.
인증 위임
쿠키 보안을 위해서는 쿠키 시크릿이 필요합니다. 쿠키 시크릿은 서버만 알고 있는 문자열이
며 쿠키를 클라이언트에 보내기 전에 암호화할 때 사용합니다. 시크릿은 비밀번호가 아니므로
기억할 필요가 없고, 무작위 문자열을 써도 됩니다. 필자는 보통
xkcd
(
http
://
bit
.
ly
/
xkcd
_
pw
_
generator
)에 착안해 만든 무작위 비밀번호 생성기를 써서 쿠키 시크릿을 만듭니다.
쿠키 시크릿이나 데이터베이스 비밀번호,
API
토큰(트위터, 페이스북 등) 같은 타사 인증은
외부로 위임하는 경우가 많습니다. 인증을 위임하면 인증서를 찾고 업데이트하기 쉬워서 유지
보수가