💡 개요
개발자 도구에 나오는 리퍼러 정책이 뭘 뜻할까?
크롬은 무조건 ‘strict-origin-when-cross-origin’ 을 사용하던데..
📕 리퍼러 정책 (Referer-Policy)
리퍼러 정책(Referer-Policy)이란 웹 브라우저가 HTTP 요청을 서버에게 전달할 때 Referer 헤더를 어떻게 할지 결정하는 보안 관련 정책이다.
이 정책을 사용하는 이유는, 요청을 받는 서버가 외부 도메인에 위치한 경우, URL에 포함된 민감한 정보(예: 토큰, 경로 정보 등)가 의도치 않게 노출될 수 있기 때문이다.
따라서 보안과 개인정보 보호를 위해 Referer 헤더의 포함 여부나 범위를 제어할 필요가 있다.
그렇다면 Referer는 뭘까?
Referer는 사용자가 A 페이지에서 B 페이지로 이동할 때, B 서버는 요청의 Referer 헤더를 통해 사용자가 어떤 페이지에서 왔는지 알 수 있다.
클라이언트와 서버 구조에서도 마찬가지이다. 서버 입장에선 이 Referer 헤더를 통해 클라이언트의 요청이 어디서 왔는지 알 수 있다.
Referer: https://front-end.com/...
🛠️ 리퍼러 정책 옵션
정책명 | 설명 |
no-referrer | Referer 헤더를 아예 보내지 않음 |
no-referrer-when-downgrade (기본값, 일부 브라우저) | HTTPS → HTTPS : 헤더 보냄 |
origin | 출처(origin)만 보냄 (예: https://example.com) |
origin-when-cross-origin | 같은 origin : 전체 URL 다른 origin : origin만 |
same-origin | 같은 origin : 전체 URL 다른 origin : 아무것도 안보냄 |
strict-origin | HTTPS → HTTPS : origin만 HTTPS → HTTP : 아무것도 안보냄 |
strict-origin-when-cross-origin (크롬 최신 기본값) | 같은 origin : 전체 URL 다른 origin : origin만 HTTPS → HTTP : 아무것도 안 보냄 |
unsafe-url | 항상 전체 URL을 보냄 (비추천, 보안 위험) |
참고로 Origin만 보낸다는 의미는 전체 URL이 아니라 프로토콜 + 도메인 + 포트 까지만 전달한다는 의미이다.
그렇기 때문에 쿼리 파라미터가 URL에 포함되어 있는 경우엔 Referer 헤더에 포함하지 않는다.
'개발 일기' 카테고리의 다른 글
[개발 일기] 2025.04.10 - Spring Security Filter (0) | 2025.04.10 |
---|---|
[개발 일기] 2025.04.09 - 정형 데이터 vs 비정형 데이터 (1) | 2025.04.09 |
[개발 일기] 2025.04.07 - Offset (0) | 2025.04.07 |
[개발 일기] 2025.04.06 - 즉시로딩을 피해야 하는 이유 (1) | 2025.04.06 |
[개발 일기] 2025.04.05 - N+1 문제 (JPA) (0) | 2025.04.05 |