このブログは引っ越しました! 引越し先は→「@zuzu開発日記〜主に日々の行動記録〜」です。
2009月10月09日
リファラーを柔軟に書き換る(偽装する)ためのuserChrome.js用スクリプトを作ってみた。
JavaScript, UserScript, Firefox
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”です。
refererChanger.uc.jsをダウンロード
主な使い方
スクリプト内の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 | リファラを空にして送信 |
無指定 | 開こうとしているサーバが別サーバだとそのサーバのルートに、ドキュメントと同じサーバーから開かれたようにする |
それ以外 | 指定された内容にリファラを書き換える。 |