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 정책 원리

- 사내 시스템 로그인 후 사내 쿠키 발급 받음
- a tag를 이용해 외부 강의 사이트로 이동
- 사내 로그인 후 발급받은 쿠키 외부 강의 사이트에서 접근 가능하도록 허용됨
- 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