cookie 값은 인증 증명이 아니라 client 입력이다

브라우저가 자동으로 보내는 문자열도 공격자가 같은 이름과 모양으로 만들 수 있으므로 신뢰 경계 밖에서 시작한다.

CLIENT

Browser 또는 공격자

memberId·role·sessionId 문자열을 임의로 보낼 수 있다.

TRUST BOUNDARY

Cookie parser

이름과 형식만 읽을 뿐 사용자를 증명하지 않는다.

SAFE

Server-side lookup

opaque ID로 session 저장소를 조회한다.

UNSAFE

직접 권한 사용 금지

cookie role과 memberId를 인가 근거로 쓰지 않는다.

핵심: cookie는 전달 수단이고, 인증 증명은 서버가 검증한 session 또는 credential에서 만들어진다.