로그인했는데도 다른 사람의 주문은 왜 볼 수 없어야 할까?
주문 상세 화면의 주소가 /orders/123이라고 하자. 123을 124로 바꿨을 때 다른 사람의 주문이 보인다면 로그인 기능은 있어도 접근을 제대로 막지 못한 것이다. 서버가 ‘누가 요청했는가’만 확인하고 ‘그 사람이 이 주문을 볼 수 있는가’를 확인하지 않았기 때문이다.지난 글에서 로그인 이후의 요청을 세션으로 사용자와 연결하는 과정을 살펴봤다. 세션이 유효하다고 모든 주문을 읽을 권한이 생기는 것은 아니다. 인증(authentication)은 요청자를 확인하는 일이고, 인가(authorization)는 그 요청자가 특정 대상에 특정 동작을 해도 되는지 판단하는 일이다.URL의 번호는 접근 권한이 아니다사용자 A가 주문 123의 상세 화면을 요청한다고 하자. 서버는 세션으로 A를 확인하고, 저장소에..