8. SameSite Cookie

wjd15sheep·2024년 1월 10일
0

1. SameSite Cookie란?

SameSite Cookie란 웹 브라우저 주소란에 표시된 도메인과 동일한 도메인에 대한 요청(API)시에만 쿠키 전송한다.
웹 브라우저의 third-party 쿠키에 대한 보안 정책이다.

  • 동일사이트(Same Site)의 정확한 의미 : www.web.devstatic.web.dev는 Same Site이다.

  • 막지 않는다면 CSRF 공격으로 크로스 사이트 요청시 크로스 사이트에 과거에 설정됐던 쿠키가 전송
    = 크로스 사이트 요청 시, 서드파티(크로스 사이트) 쿠키가 함께 전송된다면 아래의 문제 발생

    • HTTPS 미사용 시 = MITM로 요청을 가로챈다면 서드파티 쿠키를 외부에서 볼 수 있다.
    • HTTPS 사용 시 = 서드파티 쿠키가 로그인, 인증 정보를 담고있다면 어드민 API 호출도 가능

    chrome은 기존 same-site 속성이 기본 none 이였지만 80 버전부터 same-site 속성에 대한 정책이 Lax로 변경되었다.

2. 퍼스트 파티 쿠키 서드파티 쿠키

  • First-Party-Cookie

    • 클라이언트가 방문한 웹사이트에서 직접 발행하는 쿠키 파일이다.
    • 클라이언트가 방문한 웹사이트와 쿠키의 Domain이 같은 것을 퍼스트 파티 쿠키라 한다.

    퍼스트 파티 쿠키는 대부분 클라이언트가 웹 사이트를 처음 방문할 때 생성 된다.

  • Third-Party-Cookie

    • 클라이언트가 방문한 웹사이트가 아닌, 다른 웹사이트 (제 3자)에서 발행한 쿠키 파일이다.
    • 현재 웹 페이지의 Domain과 쿠키의 Domain이 다른 쿠키들을 서드파티 쿠키라고 명칭한다.
    • 대부분이 광고, 분석 및 추적 서비스가 여기에 들어간다. 클라이언트가 본 제품, 클릭한 제품 또는 장바구니에 추가한 제품에 대한 정보를 저장한다.

2.1 Second-Party-Cookies는 없는가?

웹 본인에서 발행된 쿠키는 First-Party-Cookies, 다른 웹에서 발행된 쿠키는 Thrid-Party-Cookie가 있다. 그럼 웹 사이트간 쿠키를 공유하는 Second-Party-Cookie라는 용어는 없고 Second-Party-data라는 용어를 사용한다.
Second-Party-data는 두번째 웹사이트와 같은 정보를 교환할 때 사용한다.

3. SameSite 쿠키 제어 동작

  • Strict : 가장 보수적인 정책이다. Strict로 설정된 쿠키는 크로스 사이트 요청에는 항상 전송되지 않습니다. 즉 퍼스트파티 쿠키 전송만 허용
  • Lax : Strict에 비해 상대적으로 느슨한 정책이다. 크로스 사이트 요청에는 항상 전송되지 않는다. 서드파티 쿠키라도 특수 케이스(Get, <a href>, <link rel="perender">엔 허용 한다.
  • None : SameSite가 탄생하기 전 쿠키와 동작하는 방식이 같다. 모두 허용(단, Secure 설정 강제 - HTTPS 미사용시 MITM 탈취 방지)

참조

profile
개발자 준비생

0개의 댓글

관련 채용 정보