2011-02-17 8 views
34

아웃 바운드 링크에서 리퍼러를 보내고 싶지 않은 페이지가있어서 대상 사이트가 어디에서 왔는지 알 수 없습니다.리퍼러를 대상에 보내지 못하게하는 링크

나는 이것이 가능하지 않다고 생각하지만, 나는 그것을 할 수있는 숨겨진 자바 스크립트 매직이 없다는 것을 확인하고 싶다. 그리고 그것은 대부분의 브라우저는 아니더라도 일부 브라우저에서만 작동 할 것이다.

쿵푸를 리디렉션하는 영리한 HTTP 상태 코드일까요? 이 같은

뭔가 난 그냥 같은 일을 찾고 있었다

<a href="example.com" send_referrer="false">link</a> 

답변

4

나는 이것을 알아 내려고 노력하고 있었다.

내가 생각했던 해결책은 데이터 URL을 사용하여 내가 실제로 나오는 페이지를 숨기는 것이 었습니다.

<a href='data:text/html;charset=utf-8, <html><script>window.location = "http://google.ca";</script></html>'>Link</a> 

이 링크는 다른 페이지를로드하는 데 필요한 자바 스크립트가있는 페이지 만 엽니 다. 제 테스트에서 최종 목적지에는 리퍼러가 제공되지 않습니다. 어쨌든했는데 어쩌면 데이터 URL이라도 리퍼러로 보낼 수있는 것이 무엇인지 모르겠습니다. 네가 어디서 왔는지 알려주지 않을거야.

이것은 Chrome에서 작동합니다. Chrome은 현재의 문제에 대한 유일한 관심사이지만 데이터 URL 인 페이지에서 자바 스크립트가 마음에 들지 않는 브라우저의 경우에만 내 관심사입니다. 메타 새로 고침을 시도 할 수 있습니다.

+0

크롬에서 작동합니다. 불행히도 파이어 폭스에서 아닙니다. – zaius

8

Bigmack은 올바른 경로에 있지만 자바 스크립트 위치 변경은 여전히 ​​firefox에서 리퍼러를 보냅니다. 메타 새로 고침을 사용하면 나를 위해 문제를 해결하는 것 같습니다.

<a href='data:text/html;charset=utf-8, <html><meta http-equiv="refresh" content="0;URL=&#39;http://google.com/&#39;"></html>'>Link</a> 
+0

나는 이것이 google이 gmail의 링크에 대해하는 것이라고 믿습니다. 링크를 클릭하고 클릭 한 원본 링크로 메타 새로 고침을 사용하여 빈 Google 추적 페이지로 이동합니다. – wezell

25

HTML 5는 supported in all major browsersrel="noreferrer"이 포함되어 있습니다. 그래서 이러한 브라우저, 당신은 간단하게 작성할 수 있습니다

<a href="example.com" rel="noreferrer">link</a> 

또한 다른 브라우저에 사용할 수있는 심있다 : https://github.com/knu/noreferrer

+4

이 심의 헤드는 사용되지 않는 $ .browser에 의존합니다. –

34

같은 리퍼러-차단 서비스를 사용할 수 있습니다 2015 년 이후에는 적절한 해결책이 마련되었습니다.

는 HTTP Referrer Policy 사양은 제어 할 수 있습니다 참조 자-전송 링크 자원들 (이미지, 스크립트, 스타일 시트 등), 순간, 파이어 폭스, 크롬, 오페라에 supported의하십시오.

<meta name="referrer" content="no-referrer"> 

(그리고 사양의 이전 버전은 마이크로 소프트 에지와 사파리에서 지원하고 있지만 아직 다른 모든 새로운 구문을 공급하면서 그들에게 이전 구문을 공급하는 테스트 일하는 방법을 발견하지 않았습니다.당신이 audio, img, link, script, 그리고 잊지 마세요, CORS를 필요 자원을 참조 video 태그에 적용 할 경우)

또한

, 또한 그들에 crossorigin="anonymous" 속성을 설정하기 때문에에만 최소한으로합니다 (Origin 헤더)가 공유됩니다. 이미 정보 외에도

(원격 사이트를 허용하거나 거부하기 위해 요청하는 어떤 도메인 알 필요가 있기 때문에 CORS를 사용하는 동안 당신은 Origin 헤더를 제거 할 수 없습니다.)

+0

참고 : Chrome에서이 오류를 표시합니다. '참조 정책을 설정하지 못했습니다. 값'없음 '은'항상 ','기본값 ','절대 없음 ','참조 없음 ','참조 없음 - 다운 그레이드 ','origin ','origin-when-crossorigin '또는'unsafe-url '과 같은 단어를 포함 할 수 있습니다. 이 문서의 리퍼러 정책은 변경되지 않았습니다. '언급되지 않은'vaue가 잘못되었습니다. –

+1

@ TomPažourek 감사합니다. 제 생각에 그건 오래된 구문입니다. 내가 어떻게 그것을 사용하는 것을 끝내 었는지 모르겠습니다. – ssokolow

+0

제안 된 메타 태그로 리퍼러를 전달하는 브라우저가 아직 일부 있습니다. 어떤 브라우저로도 referer를 보내는 것을 멈출 수있는 더 좋은 방법이 있습니까? 'noopener'의 사용이 도움이 될까요? – Alex

0

제공됩니다. 이 주제에 대한 자세한 내용은 여기를 참조하십시오. https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-no-referrer

동일한 원본 또는 원본 출처 요청에 대해 다른 규칙이 필요하면 특히 참조 정보를 보내거나 보내지 않아도됩니다.

특정 사용 사례에 따라 고려해야 할 사항. 즉 타사 웹 사이트에서 이미지/CSS/자바 스크립트를 가져 오는 경우이 작업을 수행하는 URL을 식별하지 않으므로 no referrer 옵션을 사용합니다. 반면에 자신의 웹 사이트에서 다른 웹 사이트로 연결하는 경우 트래픽을 보내는 중임을 알리는 것이 좋습니다. 항상 양측에 미치는 영향을 생각해보십시오. 이 두 영역에 충돌이있는 경우 URL 끝 부분에 UTM 추적 매개 변수를 추가하는 것과 같은 다른 옵션이 있습니다. 이러한 매개 변수는 일부 사람들에게 유용 할 수 있습니다. 전체 세부 사항 : https://www.contradodigital.com/2014/06/03/importance-utm-tracking-parameters-social-media/

관련 문제