HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
✍🏻
Learnary (learn - diary)
/
🍪
SameSite
🍪

SameSite

progress
Done
Tags
Web
Build-UpWhatWhyHowRefer

Build-Up


CSRF(Cross Site Request Forgery) : 옥션의 사례
  • 옥션 관리자가 해당 메일을 열어봄으로써 그 안에는 img 태그 width, height가 0이고 해당 src 경로로 인해 관리자의 비밀번호가 해커가 의도한 대로 초기화 되는 이슈가 있었음.
 
 

What


SameSite란
  • 웹 애플리케이션에서 CSRF 공격을 방지하기 위해 HTTP 쿠키에서 설정 할 수 있는 속성이다.
  • 즉 쿠키의 사용 범위를 제한하기 위한 쿠키 옵션이다.
속성 (3가지)
  • Lax
    • 자사 도메인이 아니더라도 일부 케이스(링크를 클릭해 이동하는 경우 등)에서는 접근을 허용하겠다.
    • Get 요청과 같은 특정한 경우에만 쿠키를 전송한다.
    • 상태를 변경하는 요청인 POST 요청시 접근 불가
  • Strict
    • 도메인이 다를 경우 쿠키를 서버로 전송하지 않는 설정이다.
  • None
    • 웹 사이트가 다른 경우에도 쿠키를 전송한다.
    • SameSite=None 이면 쿠키 Secure 속성도 설정해야 한다. 그렇지 않으면 쿠키 차단됨.
    • Secure 쿠키 속성은 HTTPS 프로토콜을 통해 암호화된 요청을 통해서만 서버로 전송된다.
 
Lax 정책 원리
notion image
  1. 사내 시스템 로그인 후 사내 쿠키 발급 받음
  1. a tag를 이용해 외부 강의 사이트로 이동
  1. 사내 로그인 후 발급받은 쿠키 외부 강의 사이트에서 접근 가능하도록 허용됨
      • LAX 정책이기 때문에.
 
만약 Strict 정책이라면 강의 사이트는 사내에서 발급받은 쿠키에 접근이 불가능함.
 

Why


  • 인증을 지속적으로 안전하게 유지하는 면도 신경 써야 한다.

How


자사 도메인의 기준을 어떻게 알까?
  • 도메인 접미사와 도메인 접미사 바로 앞 도메인이 같다면 Same-Site
    • ex) ww.web.dev , static.web.dev 는 ‘web.dev’ 라는 사이트의 일부로 Same-Site
  • public 접미사 ( ‘.com’, ‘github.io’ 등)의 경우 접미사 + 접미사 앞 도메인이 같아도 Cross-Site로 인지
    • your-project.github.io, my-project.github.io → Cross-Site
    • aa.myproject.com, bb.myproject.com → Same-Site
 

Refer


SameSite Cookie속성 변경? 정책 3가지/이유/대응 (Chrome80 업데이트)
chrome80버전 부터 same-site속성에 대한 정책이 Lax로 변경되는 등 몇가지 정책 변화가 생겼다. 크롬 브라우저의 점유율이 50%가 넘는 만큼 무시할 수 없는 변화다. 어떤 변경이 있고 어떻게 대응해야하는지 알아보자! 1. 쿠키를 구울 때 SameSite옵션이 없는경우 Lax로 간주한다. 2. SameSite=none 으로 사용하려면 secure옵션(https요청만 허용) 을 필수로 한다 3. http와 https간의 연결은 Cross-site로 간주한다.
SameSite Cookie속성 변경? 정책 3가지/이유/대응 (Chrome80 업데이트)
https://cherish-it.tistory.com/12
SameSite Cookie속성 변경? 정책 3가지/이유/대응 (Chrome80 업데이트)
SameSite cookies - HTTP | MDN
Warnings like the ones below might appear in your console: Cookie "myCookie" rejected because it has the "SameSite=None" attribute but is missing the "secure" attribute. This Set-Cookie was blocked because it had the "SameSite=None" attribute but did not have the "Secure" attribute, which is required in order to use "SameSite=None".
SameSite cookies - HTTP | MDN
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite
SameSite cookies - HTTP | MDN
[cookie] SameSite 설정(Chrome 80 쿠키 이슈)
어느덧 브라우저 시장을 과점하고 있는 크롬은 2020.02.04일 발표된 크롬 80 버전에 새로운 쿠키 정책을 적용했다. 이른바 SameSite라는 속성의 기본 값을 "None"에서 "Lax"로 변경한 것이다. 이는 CSRF(Cross-site request forgery: 사이트 간 요청 위조) 및 의도하지 않은 정보 유출에 대한 취약성에 대처하기 위한 것이다. 이번 포스트에서는 SameSite 속성의 종류와 특징, 설정 방법에 대해 알아보자.
[cookie] SameSite 설정(Chrome 80 쿠키 이슈)
https://goodteacher.tistory.com/496
[cookie] SameSite 설정(Chrome 80 쿠키 이슈)
RFC 6265 - HTTP State Management Mechanism
Internet Engineering Task Force (IETF) A. Barth Request for Comments: 6265 U.C. Berkeley Obsoletes:2965 April 2011 Category: Standards Track ISSN: 2070-1721 HTTP State Management Mechanism Abstract This document defines the HTTP Cookie and Set-Cookie header fields.
RFC 6265 - HTTP State Management Mechanism
https://datatracker.ietf.org/doc/html/rfc6265