Development Tip

리퍼러를 목적지로 보내는 링크 중지

yourdevel 2021. 1. 9. 11:01
반응형

리퍼러를 목적지로 보내는 링크 중지


아웃 바운드 링크가 리퍼러를 보내지 않기를 바라는 페이지가있어서 목적지 사이트가 어디에서 왔는지 알지 못합니다.

나는 이것이 가능하지 않다고 생각하지만 나는 그것을 할 수있는 숨겨진 자바 스크립트 마법이 없었고 일부 (대부분은 아니지만) 브라우저에서 작동하는지 확인하고 싶습니다.

아마도 kung-fu를 리디렉션하는 영리한 HTTP 상태 코드일까요?

이런 게 완벽 할거야

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

나는 똑같은 것을 찾고 있었고 이것이 HTML5의 기능이 될 것 같습니다 .

찾고있는 태그는 rel="noreferrer"입니다.

Webkit (Chrome 등)Firefox 에서 이미 구현되어 있지만 마일리지는 다를 수 있습니다.


2015 년 이후에 방문하는 모든 사람을 위해 이제 적절한 솔루션이 지원을 받고 있습니다.

HTTP Referrer Policy 사양을 사용하면 링크 하위 리소스 (이미지, 스크립트, 스타일 시트 등)에 대한 참조 자 전송을 제어 할 수 있으며 현재 Firefox, Chrome, Opera 및 Desktop Safari 11.1 에서 지원 됩니다.

에지, 이전 11.1 지원 사파리의 IE11, iOS의 사파리, 데스크톱 버전과 사양의 이전 버전 never, always, origin, 및 default옵션 등.

spec 에 따르면 여러 정책 값을 지정하여 지원할 수 있습니다. 인식 할 수없는 것은 무시되고 마지막으로 인식 된 것이 승리합니다.

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

또한, 당신이에 적용 할 경우 audio, img, link, script, 또는 video필요 태그 crossorigin속성, 선호 crossorigin="anonymous"가능한 경우에만 최소한으로 (그렇게하는 것이, Origin헤더) 공유됩니다.

( OriginCORS를 사용하는 동안에는 헤더를 제거 할 수 없습니다 . 원격 사이트는이를 허용하거나 거부하기 위해 어떤 도메인이 요청을하고 있는지 알아야하기 때문입니다.)


HTML 5가 포함 rel="noreferrer"되어있는, 모든 주요 브라우저에서 지원 . 따라서 이러한 브라우저의 경우 간단히 다음과 같이 작성할 수 있습니다.

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

다른 브라우저에서 사용할 수있는 shim도 있습니다 : https://github.com/knu/noreferrer


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>

나는 이것도 알아 내려고 노력했다.

내가 생각한 해결책은 데이터 URL을 사용하여 내가 오는 실제 페이지를 숨기는 것입니다.

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

이 링크는 다른 페이지를로드하기 위해 자바 스크립트 만 포함하는 페이지를 엽니 다. 내 테스트에서 최종 목적지에 대한 리퍼러는 제공되지 않습니다. 어쨌든 시도하면 리퍼러로 무엇을 보낼 수 있는지 모르겠습니다. 아마도 데이터 URL입니까? 당신이 어디에서 왔는지 알려주지 않을 것입니다.

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


이미 제공된 정보 외에. 주제에 대한 자세한 정보는 https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-no-referrer

특히 동일 출처 또는 교차 출처 요청에 대해 다른 규칙이 필요한 경우 추천 정보를 보내거나 보내지 않을 수 있습니다.

특정 사용 사례에 따라 고려해야 할 사항입니다. 즉, 타사 웹 사이트에서 이미지 / css / javascript를 가져 오는 경우이 작업을 수행하는 URL을 식별하지 않기를 원할 수 있으므로 no-referrer 옵션을 사용합니다. 자신의 웹 사이트에서 다른 웹 사이트로 링크하는 경우 트래픽을 보내고 있음을 알리고 싶을 수 있습니다. 항상 이것의 의미를 양쪽에서 생각하십시오. 이 두 영역에 충돌이있는 경우 URL 끝에 UTM 추적 매개 변수를 추가하는 등 일부 사용자에게 유용 할 수있는 다른 옵션이 있습니다. 전체 세부 정보 : https://www.contradodigital.com/2014/06/03/importance-utm-tracking-parameters-social-media/

ReferenceURL : https://stackoverflow.com/questions/5033300/stop-link-from-sending-referrer-to-destination

반응형