referrerを空にするリンクの作成方法

| コメント(1)

一般的にはページAからページBへリンクをたどっていくと、ページBを提供している サーバへは referer ヘッダが送信されアクセスログ等に記録されます。 アクセスログ解析では、この referrer を利用してページBがどこからリンクされているのか、どんな検索キーワードの検索結果ページから流れてきているかを 解析しています。

ページB(リンク先)を管理している側にとっては有用な情報ですが、 ページA(リンク元)を管理している側にとっては注意する場合があります。 会員サイトやWebメールを提供していて、そのページに外部リンクをユーザが たどるときにページAのURLが referrer として送信されてしまうからです。

そこで referrer を空にするリンクの作成方法を検索すると リファラ実験 - referrer test というページが見つかりました。リンクをたどるときにワンクッション追加 して、そのページで meta http-equiv refresh を使って <meta http-equiv="refresh" content="0;url=http://labs.qootas.org/"> のように外部リンク先(例では http://labs.qootas.org/)へ 移動した場合には referrer は送信されないようです。

query_string で外部リンク先URLを渡して meta タグの URL を埋め込んだ HTML 動的に生成する CGI 等を作れば 目的は達成できるのですが、最近 JavaScript にお熱なので gmail での実装例を参考に 書いてみました。以下のように OnClick と JavaScript で 同じことを実現することができます。

<html>
<head>
<script language="JavaScript">
<!--
OpenExtLink = function(el){
  var url = el.href;
  w = window.open();
  w.document.write('<meta http-equiv="refresh" content="0;url='+url+'">');
  w.document.close();
  return false;
};
-->
</script>
</head>
<body>
<a onClick="return OpenExtLink(this)" href="http://labs.qootas.org/ext_link_test/" target="_blank">
extra link </a>
</body>
</html>

2005年5月26日 追記
kosekiさんリファラ実験でこのJavaScriptが紹介されていました。 Operaの場合は別の方法を考えたほうがよさそうですね。

  • Firefox 1.0.4 …… リファラは空になる。
  • Netscape 7.2 …… リファラは空になる。
  • Opera 8.0 …… リファラはこのページになる。Gmailでもリファラが残るのを確認。うむむ……。
  • IE 6 …… リファラは空になる。
1 Comments

About Me

このブログは Masayoshi Sekimura によって書かれています。2007年からサンフランシスコ市内に在住し Six Apart, Ltd. でソフトウェアエンジニアをしていました。2010年11月からは合併に伴いSAY Media, Incで引き続きソフトウェアエンジニアをしています。 メールは sekimura+blog@gmail.com までどうぞ。

@sekimura, Masayoshi Sekimura - LinkedIn

このブログ記事について

このページは、Masayoshi SekimuraがNovember 16, 2004 10:38 PMに書いたブログ記事です。

ひとつ前のブログ記事は「ieview : Mozilla Firefox extension」です。

次のブログ記事は「土質講座同窓会」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

Powered by Movable Type 4.34