リファラを消して移動

このブックマークレットは、かつて、某巨大掲示板京ぽんJavaScriptスレに投稿したものの改良版です。
かつてスレに投稿した時にはレスが付かなかったので、こちらは、ひっそりと自分だけで使っていたものですが、

ケータイでブックマークレットを使うのは危険ですよ

もしもし、matsuuですが... - ブックマークレットでリファラーが漏れる

と言う発言を目撃したので、初代の京ぽんもリファラの問題は解決済みですよっと云う訳でこちらに掲載することにしました。



このブックマークレットは、アクティブリンクのURL、もしくは現在表示中のページのURLを編集して移動(ジャンプ)します。
この際に飛び先のページに元のページのリファラを渡す事無く移動します。


移動先のサイトは、次の中から選択できます。

  • URLのページに直接移動
  • 銀河フィルタで表示
  • 通勤ブラウザで表示
  • i-mode(ajipon proxy)で表示
  • i-mode(UserAgent2DoCoMo)で表示
  • ピクトでページ画像縮小
  • (前画面の)地図をMapion PDA版で表示
  • SCO(ソースチェッカーオンライン)でソースチェック

また、このほかに、おまけの機能としてテキストエリアにある文字列を

  • escape/unescape
  • encode/decode

することもできます。


このブックマークレットを使うとリファラー(referrer)を外部のサイトに漏らす事が無いので、ユーザーIDやパスワード付きのウェブサイト*1に貼られたリンクからでも安心して外部のサイトにジャンプできます。
逆に言うと、自分の存在感を消してしまうので影の薄い人になってしまいます。


killreferer.htm

<html>
<head>
<title>Bookmarklet LIB</title>
<script>
TBL_URL		= new Array(2);

RAD_CUR		= 0;
RAD_ACT		= 1;


function make_mapion_pda_url(myU) {
var X=unescape(myU).replace(/\&coco=[^&]+/,"").match(/(\d+.){2}\d+\.\d{1,3}/g);
var E=1,N=0;
if(X[0].charAt(0)==1)E=N++;
if(X.length<2) return null;
return "http://www.mapion.co.jp/c/f?grp=pda&uc=1&size=350,350&el="+X[E]+"&nl="+X[N];
}

function change_rad(myrad) {
var myform = myrad.form;
myform.urltxt.value = TBL_URL[myrad.selectedIndex];
}

function change_sel(mysel) {
var myU = mysel.form.urltxt.value;
var outU;
switch( mysel.options[mysel.selectedIndex].value )
{
	case "CASE_NONE":
		break;
	case "CASE_JUMP":
		if(myU) location.href = myU;
		break;
	case "CASE_GINGA":
		location.href = "http://yuki-lab.jp/f.cgi?f=3&u="+myU;
		break;
	case "CASE_TUUKIN":
		location.href="http://www.sjk.co.jp/c/w.exe?y="+myU;
		break;
	case "CASE_IMODE_AJIPON":
		location.href="http://imode.csx.jp/~ajipon/proxy/proxy.cgi?"+escape("page:"+myU);
		break;
	case "CASE_IMODE_UA2DoCoMo":
		location.href="http://tsukau.com/nph-docomo.cgi/000000A/http/"+myU.replace(/http:\/\//,"");
		break;
	case "CASE_PIC_TO":
		location.href="http://pic.to/"+myU.replace(/http:\/\//,"");
		break;
	case "CASE_Mapion_PDA":
		outU = make_mapion_pda_url(myU);
		if(outU) location.href=outU;
		break;
	case "CASE_SCO_CHK":
		location.href = "http://so.7walker.net/?"+myU;
		break;
	case "CASE_escape":
		mysel.form.urltxt.value = escape(myU);
		break;
	case "CASE_unescape":
		mysel.form.urltxt.value = unescape(myU);
		break;
	case "CASE_encodeURI":
		mysel.form.urltxt.value = encodeURI(myU);
		break;
	case "CASE_decodeURI":
		mysel.form.urltxt.value = decodeURI(myU);
		break;
	case "CASE_encodeURIComponent":
		mysel.form.urltxt.value = encodeURIComponent(myU);
		break;
	case "CASE_decodeURIComponent":
		mysel.form.urltxt.value = decodeURIComponent(myU);
		break;
	default:
										alert(" orz ");
		break;
}
}
</script>
</head>
<script>
TBL_URL[RAD_CUR]=document.referrer;
TBL_URL[RAD_ACT]=(location.search.length>1)?location.search.substring(1):"" ;

document.write(
"<form><select name='rad' onChange='change_rad(this)'>"+
"<option value=RAD_CUR			>呼び出し元画面のURL"+
"<option value=RAD_ACT selected	>アクティブなリンクのURL</select><br>"+
"<textarea name='urltxt' cols='30' rows='8' wrap=soft>"+
TBL_URL[RAD_ACT]+
"</textarea><br>"+
"<select name='sel' onChange='change_sel(this)'>"+
"<option value=CASE_NONE selected	>移動方法を選択して下さい"+
"<option value=CASE_JUMP			>直接移動"+
"<option value=CASE_GINGA			>銀河フィルタで表示"+
"<option value=CASE_TUUKIN			>通勤ブラウザで表示"+
"<option value=CASE_IMODE_AJIPON	>i-mode(ajipon proxy)で表示"+
"<option value=CASE_IMODE_UA2DoCoMo	>i-mode(UserAgent2DoCoMo)で表示"+
"<option value=CASE_PIC_TO			>ピクトでページ画像縮小"+
"<option value=CASE_Mapion_PDA		>(前画面の)地図をMapion PDA版で表示"+
"<option value=CASE_SCO_CHK			>SCOでソースチェック"+
"<option value=CASE_escape			>escape   (TEXTAREA)"+
"<option value=CASE_unescape		>unescape (TEXTAREA)"+
"<option value=CASE_encodeURI		>encodeURI(TEXTAREA)"+
"<option value=CASE_decodeURI		>decodeURI(TEXTAREA)"+
"<option value=CASE_encodeURIComponent	>encodeURIComponent(TEXTAREA)"+
"<option value=CASE_decodeURIComponent	>decodeURIComponent(TEXTAREA)"+
"</select></form><br>"
);
</script>
</html>

  ↑ を killreferer.htm としてローカル保存。 ↓ がブックマークレット


(1) 京ぽん用 こちらは、リファラが空になります。

javascript:(function(){location='file://localhost/C:/data/killreferer.htm?'+document.activeElement;})()


(2) 京ぽん だけでなく PCやW-ZERO3Opera でも使えますが、
リファラは、 http://borbis.web.fc2.com/killreferer.htm?【 アクティブリンクになっていた(ジャンプ先の)URL 】 となって、いわゆるリファラの偽装になります。

javascript:(function(){location='http://borbis.web.fc2.com/killreferer.htm?'+document.activeElement;})()

(2)を使う場合は、HTMLファイルをローカルに保存し管理する手間が省けてお手軽ですし、(1)のブックマークレットの使い勝手を試すのに使うこともできます。が、いちど外部のサイトにアクセスする時間が掛かります。



使い方 は、MapionBBで表示←(アクティブリンク/表示中のページ)のURL - borbisの日記や、その他のブックマークレットを参考にして頂ければ、解ると思います。



(2)のブックマークレットで実際に偽装が成功することを試して見るには、(2)のブックマークレットを(クリップボードに)コピーしてから
こちらのリンク → http://www.teria.com/~koseki/memo/referrer/view.php
を選択状態にした後に、(クリップボードから)ブックマークレットをアドレスバーに貼り付けて移動(Enterキーを押)します。(もちろん(2)のブックマークレットを事前にブックマーク登録しておいて、ここで呼び出してもOKです。)
画面が替わったら 「 移動方法を選択して下さい 」 と表示されているコンボボックスをクリックして 「 直接移動 」 を選択すると、リンク先にジャンプして 「 Referrer: http://borbis.web.fc2.com/killreferer.htm?http://www.teria.com/~koseki/memo/referrer/view.php 」 と表示されます。
これで、リンクの貼られていたページのURLは、飛び先のサイトに漏れていない事が判ります。
すなわち、偽装は成功です。




参考
W-ZERO3等の Opera Mobile や Desktop 版の Opera の場合は、data:スキームでリファラを消して移動するブックマークレット - borbisの日記リファラを消すことも出来ます。