web-dev-qa-db-ja.com

リンクがリファラーを宛先に送信しないようにする

アウトバウンドリンクからリファラーを送信したくないページがあるので、リンク先サイトがリファラーをどこから来たのか分からないようにします。

私はこれは不可能だと思いますが、それを行うことができ、いくつかの(ほとんどではないにしても)ブラウザで動作する隠されたjavascriptマジックがないことを確認したいだけです。

たぶん、カンフーをリダイレクトする巧妙なHTTPステータスコードですか?

このようなものは完璧でしょう

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

私はちょうど同じことを探していましたが、 これはHTML5の機能になります のようです。

お探しのタグはrel="noreferrer"

すでに Webkit(Chromeなど)で実装されていますFirefoxと同様 ですが、走行距離は異なる場合があります。

69
Drewmate

2015年以降に訪問するすべての人にとって、サポートを得る適切なソリューションがあります。

HTTP Referrer Policy 仕様では、リンクのリファラー送信を制御できますandサブリソース(画像、スクリプト、スタイルシートなど)現時点では、Firefox、Chrome、Opera、およびDesktop Safari 11.1では supported です。

Edge、IE11、iOS Safari、および11.1より前のSafariのデスクトップバージョンは、オプションとしてneveralwaysOrigin、およびdefaultを含む古いバージョンの仕様をサポートします。 。

仕様によれば 、これらは複数のポリシー値を指定することでサポートできます。認識されないものは無視され、最後に認識されたものが勝ちます。

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

また、audio属性を必要とするimglinkscriptvideo、またはcrossoriginタグに適用する場合、可能な場合はcrossorigin="anonymous"を優先し、絶対最小値(Originヘッダー)のみが共有されるようにします。

(CORSの使用中にOriginヘッダーを取り除くことはできません。リモートサイトは、許可または拒否するためにどのドメインが要求を行っているかを知る必要があるためです。)

46
ssokolow

HTML 5にはrel="noreferrer"、これは すべての主要なブラウザでサポートされています です。したがって、これらのブラウザーでは、次のように簡単に記述できます。

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

他のブラウザで利用できるシムもあります: https://github.com/knu/noreferrer

31
Wilfred Hughes

Bigmackは順調に進んでいますが、JavaScriptの場所を変更しても、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>
9
zaius

私もこれを理解しようとしていました。

私が考えた解決策は、データURLを使用して、実際のページを隠すことでした。

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

このリンクは、javascriptのみを含むページを開き、別のページをロードします。私のテストでは、最終的な宛先にリファラーは与えられません。とにかく試してみたら、リファラーとして何を送信できるのかわかりません。おそらくデータのURLでしょうか。あなたがどこから来たのかはわかりません。

これはChromeで機能します。 Chromeは、現在の問題に対する私の唯一の懸念ですが、データURLであるページのJavaScriptが気に入らないブラウザの場合です。おそらくメタリフレッシュを試すことができます。

4
Bigmack

すでに提供されている情報に加えて。トピックに関する詳細はこちら https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-no-referrer

特に、同一オリジンまたはクロスオリジンリクエストに異なるルールが必要な場合、紹介情報を送信するかどうかを指定できます。

特定のユースケースに応じて考慮すべき事項。つまり、サードパーティのWebサイトからimages/css/javascriptをプルする場合、これを行っているURLを特定しないため、no-referrerオプションを使用します。一方、自分のWebサイトから他のWebサイトにリンクしている場合は、トラフィックを送信していることを他のWebサイトに知らせる必要があります。両方の側でこれの意味を常に考えてください。これらの2つの領域で競合がある場合、URLの末尾にUTM追跡パラメーターを追加するなど、一部の人にとって便利な他のオプションがあります。詳細はこちら: https://www.contradodigital.com/2014/06/03/importance-utm-tracking-parameters-social-media/

1
Michael Cropper