본문 바로가기
개발

CORS에서 Cross-Origin과 쿠키의 Same-Site

by 뿔난 도비 2025. 2. 10.
반응형

CORS와 쿠키에 대해서 공부하다가 Cross-Origin과 Same-Site가 헷갈려 명확하게 공부를 했다.

 

CORS에서 Cross-Origin과 쿠키의 Same-Site

 

 

블로그 목차

 

1. Cross-Origin

2. Same-Site

 

 

Cross-Origin

 

- Cross-Origin은 아주 엄격하다.

- Cross-Origin은 호스트 네임, 포트, 스키마까지 전부 확인한다.

- 예를 들어, https://www.example.com:443 이라는 URL이 있을 때, 각 요소들은 다음과 같다.

 

1) 호스트 네임: example.com

2) 포트: 443

3) 스키마: https

 

- 위의 요소 중 하나라도 일치하지 않는 게 있으면 다 Cross-Origin이다.

- 특히, 서브 도메인까지도 일치해야 하기 때문에 굉장히 엄격하다고 볼 수 있다.

- 아무래도 이런 일을 겪지 않기 위해서는 프론트엔드와 백엔드가 구분되었을 때, 앞단에 게이트웨이를 두면 CORS를 편하게 해결할 수 있을 것이라고 생각한다.

Same-Site

 

- 쿠키의 경우에는 Same-Site에만 전송되도록 설정을 할 수 있다.

- 이때, Same-Site는 eTLD+1을 확인한다.

- 그러면 TLD는 뭐고, eTLD는 뭐고, eTLD+1은 뭘까?

 

1) TLD: 최상위 도메인이다. 예를 들어, .org, .com 등이 존재한다.

2) eTLD (effective TLD): 최상위 도메인이 아니더라도 실제로 독립적으로 관리되는 도메인으로, 유효 최상위 도메인이라고 할 수 있다. .github.io, .co.jp 등이 존재하며, 공개된 eTLD 리스트를 통해 어떤 도메인들이 있는지 알 수 있다.

3) eTLD+1: eTLD 바로 왼쪽에 위치한 하위 레벨 도메인까지 합쳐서 eTLD+1이라고 부른다.

 

- https://www.example.com:443 에서 eTLD는 .com이며, eTLD+1은 example.com이다.

- Same-Site의 경우 eTLD+1이 같으면 Same-Site라고 인식하며, 포트, 스키마, 서브 도메인이 달라도 상관없다.

 

최근 프로젝트에서 CORS가 너무 화가 나서 *로 전부 허용을 해준적이 있는데, 보안 문제를 인식하고 있기 때문에 수정을 해 나가려고 한다.

 

반응형