[TIL] Token을 header 또는 cookie에 저장할 때 장단점

김민재·2025년 2월 17일

TIL

목록 보기
171/194

문제

TOKEN을 어디에 저장하는 게 더 좋을까? 라는 생각이 들었다.

쿠키에 저장했을 때 장점

  • 보안: httpOnly와 secure 속성을 설정하여 XSS 공격으로부터 보호할 수 있다. 클라이언트 측 Js에서 쿠키에 접근할 수 없으므로 안전성이 높다.
    • XSS: 악의적인 스크립트를 웹 페이지에 삽입하여 사용자 브라우저에서 실행하도록 하는 공격
  • 자동 처리: 브라우저가 요청 시 쿠키를 자동으로 포함하므로, 개발자가 별도로 헤더를 설정할 필요가 없다.
  • 상태 유지: 쿠키는 세션 상태를 유지하는 데 유리하며, 세션 관리가 간편하다.

헤더에 저장했을 때 장점

  • CSRF 저항: Authorization 헤더를 사용하면 CSRF 공격에 대한 저항력이 높아진다. 클라이언트가 직접 토큰을 포함해야 하므로, 공격자가 임의의 요청을 보내기 어렵다.

    • CSRF: 사용자가 인증된 세션을 가지고 있을 때, 악의적인 웹사이트가 해당 사용자의 권한으로 다른 웹사이트에 요청을 보내는 공격
  • API 중심 애플리케이션: RESTful API나 SPA(Single Page Application)와 같이 클라이언트가 서버 API를 호출하는 구조에서 자주 사용된다. 클라이언트가 API를 호출할 때, 헤더를 통해 쉽게 인증 정보를 전달할 수 있다.

서로 정반대의 단점을 가지고 있다. 자신의 웹에 맞게 설정을 하는 것이 중요하다.

profile
개발 경험치 쌓는 곳

0개의 댓글