RefControl でスクリプトの実行結果で偽装するための改造方法
猫科研究所 さんのところより、Firefox アドオンの RefControl の改造ネタ。
このパッチをすることで、Referer をスクリプトで処理した結果に偽装できるようになるので、デフォルトの偽装より高度なことができるようになる(イメピタ対応とか)。
まずはパッチ部分について。以下猫科さんのところの内容をほぼそのまま引用。
Firefoxの拡張機能のフォルダ(extensions)で{455D905A-D37C-4643-A9E2-F6FEFAA0424A}というフォルダを探します。この下のcomponents\refcontrolComp.jsを編集します。プロファイルフォルダのトップからいきなり refcontrolComp.jsを検索しても早いと思います。
performVariableInterpolation: function(oChannel, sRef) { var vars = { '$': '$' }; // $$ is a literal $ var arr =という箇所を探します。RefControlのバージョン0.8.10では18行目にあります。ここに
performVariableInterpolation: function(oChannel, sRef) { if(sRef.match(/^script:(.+)/i)){ return eval(RegExp.$1); } var vars = { '$': '$' }; // $$ is a literal $ var arr =というように3行書き足し上書き保存します。この改造は、RefControlの設定画面から任意のJavaScriptでRefererを設定できるようにしています。
続いて設定方法
- RefControl のオプションダイアログを開く
- サイトを追加を押す
- サイトには対象サイトのURL、動作はカスタムを選択
- カスタムの設定欄に script: を頭に付けた Referer を返す JavaScript コードを書く。
- OKボタンを押す
以下猫科さんのところの内容から引用
Site:欄にimepita.jpと書き、Action:はCustom:を選択します。そして右の欄には
script:oChannel.URI.spec.replace(/image\/(\d{8}\/\d{6})/i, "$1");と書き、OKを押して戻ります。