경우에 따라 Referer가 HTTPS에서 HTTP로 전달됩니다. 어떻게?


17

이론적으로 브라우저는 참조 정보를 HTTPS에서 HTTP 사이트로 전달하지 않습니다. 그리고 내 경험상 이것은 항상 사실이었습니다. 그러나 나는 예외를 발견했고 그것이 왜 효과가 있는지 이해하고 싶어서 사용할 수도 있습니다.

https://www.google.ca/에서 "내 추천자가 무엇입니까"를 검색 하십시오.
예 : https://www.google.ca/search?q=what+is+my+referer

추천자를 표시 할 사이트가 몇 군데 있습니다. 그들은하지 말아야 할 때 모두 "작동"하는 것처럼 보입니다. 예를 들어 www.whatismyreferer.com을 클릭하십시오. 나는 얻다:

 Your referer:
 https://www.google.ca/

때때로, 결과적으로 "레퍼러 없음"을 얻는 경우가 드물다. 돌아가서 링크를 다시 클릭하면 다음에 "작동"합니다.

이런 일은 일어나지 않아야합니다. www.whatismyreferer.com은 비 HTTPS 사이트입니다. 참조 헤더는 전달되지 않아야하지만 전달됩니다.

여기서 무슨 일이 일어나고 있으며 HTTPS 사이트에서 링크중인 HTTP 사이트로 어떻게합니까?


1
Windows에서 Chrome을 사용하고 있는데 차이가있는 경우 (예 : 다른 사용자가 다른 브라우저 / OS에서 다른 결과를보고있는 경우)
ravisorg

이 동작은 더 이상 사실이 아닙니다.
Flimm

@ravisorg, S / O에 게시해서는 안됩니까?
Pacerier

테스트가 :-( 더 이상 유효하지 그래서 구글은 지금은 HTTPS 링크를 반환하지 않습니다
실라 S. 갈색

답변:



4

이것이 표준 동작입니다.

https://tools.ietf.org/html/rfc2616#section-15.1.3 말한다

참조 페이지가 보안 프로토콜로 전송 된 경우 클라이언트는 (비보안) HTTP 요청에 Referer 헤더 필드를 포함하지 않아야합니다.

따라서 고객이 그렇게하면 표준을 위반하는 것입니다.

그런 다음 Google은 표준이며 원하는대로 할 수 있습니다 :-)


1
"해야한다"는 선택권을 의미합니까?
Pacerier

그래, 나는 그렇게 생각할 것이다.
johnshen64

4
선택 사항이므로 표준을 위반한다고 말하는 이유는 무엇입니까?
Pacerier

1
이제 2616은 더 이상 사용되지 않습니다. 7231 섹션 5.5.2 는 "참조 페이지가 보안 프로토콜로 수신 된 경우 사용자 에이전트는 보안되지 않은 HTTP 요청으로 Referer 헤더 필드를 보내서는 안된다"고 말합니다. 보안 HTTP 요청에 대해 에이전트가 수행해야 할 작업은 지정하지 않습니다.
Peter

1

이것은 구글 페이지의 자바 스크립트가하고있는 것으로 보입니다. noscript가 활성화 된 firefox에서는 표시되지 않으며 javascript를 비활성화하면 Windows의 Chrome에서는 표시되지 않습니다. 나는 그보다 더 깊이 파고 들지 않았는지 구체적으로 모른다.


아니, 그것은 자바 스크립트와 관련이 없습니다 (물론 그것을 생각하고 물어보기 전에 확인했습니다). Chrome이 따르는 새로운 <meta> 태그 인 것 같습니다.
ravisorg

자바 스크립트를 비활성화하면 리퍼러가 제대로 작동하지 않습니다. 모르겠어요 어쩌면 여기에 두 가지 이상이 관련 될 수 있습니다.
Etan Reisner

매우 흥미 롭습니다. 더 실험 해 보겠습니다. 피드백을 주셔서 감사합니다!
ravisorg

0

<meta> 레이블의 속성 이름에는 새로운 참조 규칙이 있으며이 참조는이 문서에서 전송 된 모든 요청에 ​​첨부 된 HTTP 참조 HTTP 헤더의 컨텐츠를 제어합니다.

자세한 내용은 여기를 참조 하십시오 : RFC Referrer Policy


이것은 이미 받아 들여진 답변과 동일합니까?!
DocRoot

-2

링크를 클릭하면 https://www.google ....에서 http://www.google ...로 리디렉션되고 www.whatismyreferer.com으로 리디렉션되기 때문입니다.

그리고 당신이 말했듯이, http 웹 사이트 사이에서 referer가 전송됩니다.

Firefox 확장으로 확인할 수 있습니다


2
당신은 추측하고 있습니까, 아니면 사실에 근거하고 있습니까? 나는 그것이 나의 끝에 일어나는 것을 보지 않기 때문에. 링크를 클릭하면 google.ca 의 HTTPS 리디렉션으로 이동 한 다음 최종 도메인으로 이동합니다. www.whatismyreferer.com에 도달 할 때까지는 비 https URL을 누르지 않습니다. 또한 추천자 는 http가 아닌 httpS://www.google.ca를 명시 합니다.
ravisorg

예,이 답변은 잘못된 것 같습니다.
ceejayoz

http 헤더의 덤프는 다음과 같습니다. pastebin.com/Y1HJyJ87 방금 리소스 다운로드 (Google 추천 및 기타 아약스와 같은) 및 쿠키 관련 데이터를 제거했습니다. 그러나 여러 번 시도했을 때 Google이 다르게 행동한다는 것을 인정해야합니다 ... 때로는 https 만 사용하므로 웹 사이트에서 내 추천자를 표시하지 못하게합니다. 직접 시도해보십시오
user2299634
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.