ガジェカツ~在宅SEのガジェット活動ブログ~

在宅SEな筆者がガジェットネタやIT、プログラミングネタを書き連ねるブログ

リファラーを柔軟に書き換る(偽装する)ためのuserChrome.js用スクリプトを作ってみた。

10/04/28更新・sites配列とアクセスしようとしているサーバーのドメインが一部だけ一致した場合でも書き換えるようにした。

09/12/25更新・ステータスバーアイコンとツールメニューにON/OFFメニューを追加しました。

09/11/02更新・ダウンロード先を自前アプロダに変更しました。

09/10/26更新・リファラの自由指定が実際は効いていなかったので修正しました。

09/10/23更新・value指定方法を勘違いしてしまった方を見つけたので、value指定方法の説明を分かりやすく書き換えました。スクリプトのコメント部も書き換えてあります。

リファラーの指定がうるさいサーバーが多くあるので今までrefControlという拡張機能を使っていましたが我がFirefoxの軽量化および高速化作戦に伴い、refControlを無効化させましたが、
やっぱりリファラーを書き換えたかったのでuserChrome.js用スクリプトで作ってみました。

どんなスクリプト

元にしたスクリプトfakeRefererは基本的に本来のリファラーを送るか今のURLのルートを送るか程度しか指定できませんでした。
僕が使いたかったのはRefererを自由に書き換えることが出来るものです(まさにrefControlの代替です!)
そのためfakeRefererに色々なオプションを付け加え、さらに固定リファラーを指定出来るようにしたスクリプトに改造しました。
それが”RefererChanger”です。

主な使い方

スクリプト内のsites配列(ハッシュ配列)にリファラーを書き換えたいサイトと書き換え方法を指定すれば次回userChrome.jsロード時から書き換えてくれます。
sites配列の書き方はハッシュのkeyに書き換え対象のドメインを、valueに書き換え方法を指定して下さい。
またデフォルトとしてsites配列には以下の内容が入っています。

	var sites = {
		'image.itmedia.co.jp' : '@FORGE',
		'2ch.net' : '@FORGE',
		'imepita.jp' : '@ORIGINAL',
		'tumblr.com' : '@FORGE',
		'fc2.com' : '@BLOCK',
	};

sites配列のvalue指定方法

Key Value
@NORMAL リファラを変更しない
@FORGE 開こうとしているサーバのルートに
@ORIGINAL 開こうとしているサイトのURLを送信する
@BLOCK リファラを空にして送信
無指定 開こうとしているサーバが別サーバだとそのサーバのルートに、ドキュメントと同じサーバーから開かれたようにする
それ以外 指定された内容にリファラを書き換える。