HTTP 레퍼러
HTTP refererHTTP |
---|
![]() |
요구 방식 |
헤더 필드 |
응답 상태 코드 |
보안 접근 제어 방법 |
보안 취약성 |
HTTP에서 "Referer"(Referer의[1] 철자 오류)는 리소스가 요청된 웹 페이지 주소(URI 또는 IRI)를 식별하는 옵션의 HTTP 헤더 필드 이름입니다.레퍼러를 체크함으로써 새로운 웹 페이지를 제공하는 서버는 요청의 발신지를 확인할 수 있습니다.
가장 일반적인 상황에서는 사용자가 웹 브라우저의 하이퍼링크를 클릭하면 브라우저가 대상 웹 페이지를 보유하고 있는 서버에 요청을 보낼 수 있습니다.이 요청에는 사용자가 마지막으로 접속한 페이지(링크를 클릭한 페이지)를 나타내는 Referer 필드가 포함될 수 있습니다.
웹 사이트 및 웹 서버는 수신된 Referer 필드의 내용을 기록하여 사용자가 링크를 팔로우한 웹 페이지를 판촉 또는 통계 [2]목적으로 식별합니다.이로 인해 사용자의 사생활이 손실되고 보안 [3]위험이 발생할 수 있습니다.보안 위험을 줄이기 위해 브라우저는 Referer에서 전송되는 정보의 양을 꾸준히 줄여 왔습니다.2021년 3월 현재 기본적으로 Chrome,[4] Chromium 기반 Edge[6],[5] Firefox, Safari는 도메인 이름을 제외한 모든 것을 제거하고 교차 원본 요청에서 원본만 보냅니다.
어원학
레퍼러의 철자 오류는 컴퓨터 과학자인 Phillip Hallam-Baker가 HTTP [7]사양에 "Referer" 헤더 필드를 포함시키기 위해 처음 제안에서 도입되었습니다.그 철자 바꾸기 돌에 법인 설립의 요청 시간(수 있을까 1996년)의 논평이 표준 문서 RFC1945[8](프로토콜의 'reflects 일반적인 사용에"에서 허용되"'당시의 언급)을 위해;문서 공동 저자인 로이 필딩 1995년 3월은 standar"어떤 것도(referer 또는 referrer)이 더 잘 이해합니다."에 언급되었다.d기간의 [9]UNIX 철자 검사기.HTTP 레퍼러에 대해 설명할 때 "Referer"는 업계에서 널리 사용되는 철자가 되었습니다. 그러나 HTTP 헤더나 Document [3]Object Model과 같은 일부 웹 사양에서 올바른 철자 "referer"가 사용되기 때문에 오자 사용은 보편적이지 않습니다.
세부 사항
웹 페이지를 방문할 때 레퍼러 또는 참조 페이지는 링크가 연결된 이전 웹 페이지의 URL입니다.
일반적으로 referrer는 이 요청을 초래한 이전 항목의 URL입니다.예를 들어 이미지의 레퍼러는 일반적으로 이미지를 표시하는HTML 페이지입니다referrer 필드는 웹 브라우저에서 웹 [10]서버로 전송되는 HTTP 요청의 옵션 부분입니다.
많은 웹 사이트가 사용자를 추적하기 위한 시도의 일환으로 레퍼러를 기록합니다.대부분의 웹 로그 분석 소프트웨어는 이 정보를 처리할 수 있습니다.레퍼러 정보는 프라이버시를 침해할 수 있기 때문에 일부 웹 브라우저에서는 레퍼러 정보의 [11]송신을 디세블로 할 수 있습니다.또한 일부 프록시 및 방화벽 소프트웨어는 공개되지 않은 웹사이트의 위치가 유출되지 않도록 레퍼러 정보를 필터링합니다.이로 인해 문제가 발생할 수 있습니다.일부 웹 서버는 이미지의 딥링크나 부정사용(대역폭 도난)을 방지하기 위해 올바른 레퍼러 정보를 송신하지 않는 웹 브라우저에 대한 웹 사이트 일부를 차단합니다.일부 프록시 소프트웨어에서는 대상 웹 사이트의 최상위 주소를 레퍼러로 지정할 수 있으므로 이러한 문제가 줄어들지만 경우에 따라서는 사용자가 마지막으로 방문한 웹 페이지가 노출될 수 있습니다.
많은 블로그가 자신과 링크하고 있는 사람들과 다시 연결하기 위해 레퍼러 정보를 게시하여 대화의 폭을 넓힙니다.이는 결국 스팸 발송자의 웹사이트를 대중화하기 위해 가짜 레퍼러 정보를 보내는 레퍼러 스팸의 증가로 이어졌다.
JavaScript의 document.[12]referrer를 사용하여 클라이언트 측 레퍼러 정보에 액세스할 수 있습니다.예를 들어 사용자의 검색 엔진 조회를 기반으로 웹 페이지를 개별화하는 데 사용할 수 있습니다.그러나 [13]https에서 Google 검색을 사용하는 경우와 같이 referrer 필드에 항상 검색 키워드가 포함되는 것은 아닙니다.
레퍼러 숨김
대부분의 웹 서버는 모든 트래픽의 로그를 유지하고 각 요구에 대해 웹 브라우저에서 전송된 HTTP 레퍼러를 기록합니다.이로 인해 사생활에 대한 우려가 커지고 있으며, 그 결과 웹 서버가 실제 참조 URL로 전송되지 않도록 하기 위한 시스템이 많이 개발되었습니다.이러한 시스템은 레퍼러 필드를 공백으로 만들거나 부정확한 데이터로 대체하여 작동합니다.일반적으로 인터넷 보안 스위트는 레퍼러 데이터를 공백으로 만들지만 웹 기반 서버는 보통 자신의 잘못된 URL로 대체합니다.이로 인해 레퍼러 스팸 문제가 발생합니다.두 방법의 기술적인 세부 사항은 거의 일치합니다.소프트웨어 애플리케이션은 프록시 서버로서 기능해 HTTP 요구를 조작하는 한편, Web 베이스의 메서드는 프레임내에 Web 사이트를 로드해, Web 브라우저는 Web 사이트의 주소의 레퍼러 URL 를 송신합니다.일부 웹 브라우저에서는 사용자에게 요청 [11]헤더의 레퍼러 필드를 끌 수 있는 옵션이 제공됩니다.
대부분의 웹 브라우저는 "새로 고침" 필드를 사용하여 리디렉션하라는 지시를 받을 때 레퍼러 필드를 보내지 않습니다.여기에는 Opera 일부 버전 및 많은 모바일 웹 브라우저는 포함되지 않습니다.단, 이 리다이렉트 방법은 World Wide Web Consortium(W3C)[14]에 의해 권장되지 않습니다.
HTTP Secure(HTTPS) 접속으로부터 Web 사이트에 액세스 해, 링크가 다른 시큐어 로케이션 이외의 장소를 가리키고 있는 경우, 레퍼러 필드는 [15]송신되지 않습니다.
HTML5 표준에서는 속성/값 지원이 추가되었습니다.rel="noreferrer"
사용자 에이전트가 레퍼러를 [16]송신하지 않도록 지시합니다.
다른 레퍼러 숨김 방식은 원래 링크 URL을 원래 URL로 메타 새로 고침을 하는 작은 HTML 페이지를 포함하는 Data URI 스킴 기반 URL로 변환하는 것입니다.사용자가 에서 리다이렉트 되었을 때data:
페이지에 원래 레퍼러가 숨겨져 있습니다.
Content Security Policy Standard 버전 1.1에서는 새로운 레퍼러 디렉티브가 도입되어 레퍼러 헤더에 관한 브라우저의 동작을 보다 상세하게 제어할 수 있게 되었습니다.특히 웹마스터는 브라우저에 레퍼러를 전혀 차단하지 않도록 지시할 수 있으며, 같은 원점으로 이동할 때만 이를 공개할 수 있습니다.[17]
레퍼런스
- ^ Gourley, David; Totty, Brian; Sayer, Marjorie; Aggarwal, Anshu; Reddy, Sailu (27 September 2002). HTTP:The Definitive Guide. ISBN 9781565925090.
- ^ Kyrnin, Jennifer (2012-04-10). "Referrer - What is a Referrer - How do HTTP Referrers Work?". About.com. Retrieved 2013-03-20.
- ^ a b "Does your website have a leak?". ICO Blog. 2015-09-16. Archived from the original on 2018-05-24. Retrieved 2018-08-16.
- ^ "Referrer Policy: Default to strict-origin-when-cross-origin - Chrome Platform Status". www.chromestatus.com. Retrieved 2021-03-23.
- ^ Lee, Dimi; Kerschbaumer, Christoph. "Firefox 87 trims HTTP Referrers by default to protect user privacy". Mozilla Security Blog. Retrieved 2021-03-23.
- ^ Wilander, John (2019-12-10). "Preventing Tracking Prevention Tracking". WebKit blog.
- ^ Hallam-Baker, Phillip (2000-09-21). "Re: Is Al Gore The Father of the Internet?". alt.folklore.computers. Retrieved 2013-03-20.
- ^ Berners-Lee, T.; Fielding, R.; Frystyk, H. (May 1996). Hypertext Transfer Protocol -- HTTP/1.0. IETF. doi:10.17487/RFC1945. RFC 1945.
- ^ Fielding, Roy (1995-03-09). "Re: referer: (sic)". ietf-http-wg-old. Retrieved 2013-03-20.
- ^ "Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content (RFC 7231 § 5.5.2)". IETF. June 2014. Retrieved 2014-07-26.
The "referrer" [sic] header field allows the user agent to specify a URI reference for the resource from which the target URI was obtained […]
- ^ a b "Network.http.sendRefererHeader". MozillaZine. 2007-06-10. Retrieved 2015-05-27.
- ^ "HTML DOM Document referrer Property". w3schools.com. Retrieved 2013-03-20.
- ^ Gundersen, Bret (2011-10-19). "The Impact of Google Encrypted Search". Adobe Digital Marketing Blog. Retrieved 2021-03-17.
- ^ "HTML Techniques for Web Content Accessibility Guidelines 1.0: The META element". W3C. 2000-11-06. Retrieved 2013-03-20.
- ^ "Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content: referrer (RFC 7231 § 5.5.2)". IETF. June 2014. Retrieved 2014-07-26.
A user agent MUST NOT send a referrer header field in an unsecured HTTP request if the referring page was received with a secure protocol
- ^ "4.12 Links — HTML Living Standard: 4.12.5.8 Link type "noreferrer"". WHATWG. 2016-02-19. Retrieved 2016-02-19.
- ^ "Content Security Policy Level 2". W3. 2014. Retrieved 2014-12-08.
외부 링크
- RFC 1945:Hypertext Transfer Protocol -- HTTP/1.0
- RFC 7231: 하이퍼텍스트 전송 프로토콜(HTTP/1.1): 의미론과 내용
- RFC 3987: Internationalized Resource Identifier(IRI; 국제화 자원 식별자)
- 레퍼러 정책 - W3C 에디터 초안