HttpOnly
Set-Cookie: 쿠키명=쿠키값; path=/; HttpOnly
Secure
Set-Cookie: 쿠키명=쿠키값; path=/; secure
SameSite 속성
Set-Cookie: 쿠키명=쿠키값; path=/; SameSite=Strict
🏷️ Same-Origin
같은 출처라는 것이다.
출처는 프로토콜 + 호스트 + 포트로 되어있다.
ex) https://www.hello.com:8080
- Scheme = https://
- Host = www.hello.com
- Port = 8080
2가지 도메인이 있다. 현재 보고있는 페이지의 도메인(Site Domain) 과 쿠키를 가져온 도메인(Cookie Domain).
Cookie Domain은 즉 저장된 쿠키의 도메인이다.
사용자가 현재 보고있는 페이지의 도메인과 쿠키를 통해 가져온 도메인이 같은 경우.
== 사용자가 접속한 페이지와 같은 도메인의 쿠키가 전송됨.
현재 도메인에서 필요에 따라 설정한 쿠키.
즉 사용자가 직접 방문하거나 상호작용하는 웹사이트에서 사용되는 쿠키라고 생각하면 된다.
ex) 사이트에 접속하여 로그인했을 때 로그인 상태가 유지, 쇼핑 카트 정보 유지 등에 사용.
현재 보고있는 페이지의 도메인과 쿠키를 통해 가져온 도메인이 다른 경우.
사용자가 접속한 페이지와 다른 도메인으로 쿠키가 전송됨.
많은 홈페이지들을 오가며 공통된 작업을 수행하는 Google Ads 광고 정보 등.
ex) 사용자가 a.com에 접속하고 있다. 근데 페이지 속에 z.com의 스크립트가 심어져 있다. 이 때 z.com은 사용자가 a.com을 방문했다는 정보를 담은 쿠키를 생성한다.
같은 사용자가 다른 b.com이라는 사이트에 방문하면 z.com의 스크립트가 심어져있고 z.com은 사용자가 a.com이라는 사이트의 사용 내역에 대한 정보를 쿠키로부터 가져올 수 있기 때문에 이 점을 활용하여 광고를 보여줄 수 있다.
그러면 z.com의 스크립크 삽입이 많아질수록 z.com은 사이트 방문자가 어떤 행동을 했는지 추적이 가능하다.
다양한 홈페이지에서 동일한 쿠키값을 저장하고 요청하기 위해.
그래서 웹사이트와 외부 서비스 간의 협력을 통해 다양한 기능을 구현하는 데에 중요한 역할한다.
Cross-Site 요청 시, 서드파티 쿠키가 함께 전송된다면 문제 발생.
HTTPS 미사용일 때, 쿠키 탈취 가능 -> 해커가 클라이언트가 가지고 있는 쿠키에 대한 정보를 볼 수가 있다. 그러면 해당 사용자의 세션을 가져와서 무단으로 접근 가능.
- 또한 데이터 암호화를 하지 않기 때문에 데이터 도청이 가능함. (민감한 정보 노출)
HTTPS 사용일 때, 쿠키 활용 가능
웹 브라우저 주소 란에 표시된 도메인과 동일한 도메인에 대한 요청 시에만 쿠키 전송.
www.web.dev 와 static.web.dev 는 Same Site서드파티 쿠키가 요청에 담겨 전송되는 것을 방지한다. 그래서 쿠키의 제한된 범위 내에서만 전송되도록 설정한다.
쿠키의 무차별 전송을 막아준다.
Q1. 특정 웹 사이트를 들어갔을 때, 서드파트 쿠키는 어떠한 경우에 어떤 과정을 통해서 생성되는 건가요?
A1. 쿠키 동작 시나리오 <- 서드 파티가 있을 때

서드 파티 없이 일반 쿠키 동작 과정

실습 내용
🔖 https://www.notion.so/Set-Cookie-Header-MaxAge-Expires-Session-e2d2d39bedd042ba9641643ea46250a4
Reference
🔗 https://velog.io/@tjseocld/%EC%84%9C%EB%93%9C-%ED%8C%8C%ED%8B%B0%EC%99%80-%ED%8D%BC%EC%8A%A4%ED%8A%B8-%ED%8C%8C%ED%8B%B0-%EC%BF%A0%ED%82%A4%EC%99%80-%EB%B3%B4%EC%95%88 - 서드 파티와 퍼스트 파티 쿠키와 보안
🔗 https://brunch.co.kr/@dighty/4 - 퍼스트파티 쿠키,
기초부터 쓰는 방법까지!