Referrer Policy, (방문)출처 정책
Referrer Policies
enum ReferrerPolicy { "", "no-referrer", "no-referrer-when-downgrade", "same-origin", "origin", "strict-origin", "origin-when-cross-origin", "strict-origin-when-cross-origin", "unsafe-url" };
no-referrer
https://example.com/page.html에있는 문서가 "no-referrer"정책을 설정하면 https://example.com/ (또는 다른 URL) 로의 탐색은 Referer 헤더를 전송하지 않는다.
no-referrer-when-downgrade
반면 TLS로 보호 된 클라이언트에서 신뢰할 수없는 URL로 요청하면 참조 자 정보가 포함되지 않습니다. Referer HTTP 헤더는 전송되지 않습니다.
https://example.com/page.html 문서가 "no-referrer-when-downgrade"정책을 설정하고, https://not.example.com/으로 이동하면 Referer HTTP 헤더값은 https://example.com/page.html이며, 둘 다 자원의 출처가 잠재적으로 신뢰할 수없는 URL이 아닙니다.별도의 정책이 지정되지 않은 경우 사용자 에이전트의 기본 동작.
같은 페이지에서 http://not.example.com/으로 이동하면 Referer 헤더가 전송되지 않습니다.
same-origin
Cross-origin은 참조정보가 없다. referer 헤더는 전송되지 않는다.
https://example.com/page.html의 문서가 "same-origin"정책을 설정하면, https://example.com/not-page.html으로 이동하면 값이있는 Referer 헤더로 https://example.com/page.html가 전송된다.
동일한 페이지에서 https://not.example.com/으로 이동하면 Referer 헤더가 전송되지 않는다.
origin
참고 : 원본 serialization은 https://example.com.
유효한 URL이 Referer 헤더에서 보내 지도록 사용자 에이전트에 U+002F SOLIDUS("/") 문자를 추가한다. (예 : https://example.com/)
참고 : "origin"정책은 암호화되지 않은 HTTP 요청의 일부로 네트워크를 통해 HTTPS 리퍼러의 원본을 보내도록합니다. "static-origin"정책은 이러한 우려를 해소합니다.
만약 https://example.com/page.html 문서가 "orgin"정책을 설정하면, 모든 출처로의 이동은 https://example.com/의 값을 가진 Referer 헤더를 보내고, 이는 잠재적으로 신뢰할만한 URL이 아니다.
strict-origin
- TLS 보호된 환경설정에서 잠재적으로 신뢰할 수있는 URL과,
- TLS 보호되지 않는 환경설정에서 모든 origin로
https://example.com/page.html 문서가 "strict-origin"정책을 설정하고, https://not.example.com으로 이동하면, Referer 헤더는 https://example.com/ 값이 전송된다.
동일한 페이지에서 http://not.example.com으로 이동하면 Referer 헤더가 전송되지 않는다.
http://example.com/page.html 문서가 "strict-origin"정책을 설정하고, http://not.example.com 또는 https://example.com으로 이동하면, Referer 헤더는 http://example.com/ 값이 전송된다.
origin-when-cross-origin
참고 : "origin-when-cross-origin"정책의 경우 프로토콜 업그레이드 예는, http://example.com/에서 https://example.com/으로 이동할 때 cross-origin 요청이다.
참고 : "origin-cross-origin"정책은 암호화되지 않은 HTTP 요청의 일부로 네트워크를 통해 HTTPS referer 원본을 보내도록한다. "strict-origin-when-cross-origin"정책은 이러한 우려를 해소한다.
https://example.com/page.html의 문서가 "origin-cross-origin"의 정책을 설정하고, https://example.com/not-page.html으로 이동하면, https://example.com/page.html Referer 헤더가 전송된다.
같은 페이지에서 https://not.example.com/으로 이동하면 신뢰할수 없는 URL인 경우에도 Referer 헤더 https://example.com/ 값이 전송된다.
strict-origin-when-cross-origin
- TLS 보호된 환경설정에서 잠재적으로 신뢰할 수있는 URL과,
- TLS 보호되지 않는 환경설정에서 모든 origin로
https://example.com/page.htm 문서가 "strict-origin-when-cross-origin"정책을 설정하고, https://example.com/not-page.html으로 이동하면, https://example.com/page.html referer 헤더가 전송된다.
동일 문서에서 https://not.example.com/으로 이동하면 https://example.com/ Referer 헤더가 전송된다.
동일 문서에서 http://not.example.com/으로 이동하면 Referer 헤더가 전송되지 않는다.
unsafe-url
https://example.com/sekrit.html 문서가 "unsafe-url"정책을 설정하고, http://not.example.com/ (또는 모든 다른 origin)으로 이동하면, https://example.com/sekrit.html referer 헤더를 전송한다.
참고 : 정책의 이름이 거짓말하지 않는다. 이건 전혀 안전하지 않다. 이 정책은 TLS로 보호되는 리소스에서 불안전한 출처로가는 출발점과 경로를 누설한다. 잠재적으로 민감한 문서에 대한 정책을 설정할 때의 영향을 신중하게 고려하라.
Empty 공백
Referrer Policy Delivery 리퍼러 정책 전달
다음 다섯가지중 하나가 전달된다.
- Referrer-Policy HTTP 헤더를 통해서
- referrer 이름을 가진 <meta> 요소를 통해서
- <a>, <area>, <img>, <iframe>, <link> 요소에서 referrerpolicy 속성을 사용
- <a>, <area>, <link> 요서에서 noreferrer 링크 관계를 통해서
- 암묵적인 상속을 통해서