外部リンクをRedirecter経由にするjQueryコード

  • 投稿日 : 2010-01-25, 16:45(最終更新日時 : 2010-01-28, 01:29)
  • タグ(jQuery Nucleus JavaScript
  • カテゴリ(Javascript
  • 記し人(luvsic
  • 閲覧数(80)
  • test null 13
  • test 1-3
  • test 2-3
自前リダイレクタ

Nucleusの管理画面に外部リンクはリダイレクタをつかいたいな、と思ってた。期待したいメリットは3つ。

  • リンクのアドレスを目視で確認できる
  • リファラ隠し CMSの管理画面アドレス漏れ
  • リファラ隠し セッションID漏れ

JAVAのシステムとかで「sid=」みたいなのが出てるのをちょくちょく見てて、Nucleusはチケットだから多分別物なんだろうけど、なんかもやもやもが残ってて。ちょうどきっかけがあったので、昔作りかけだったコードを仕上げてみることにした。



/*
 * Ex: Another location link use target _blank and redirecter.
 * update(y-m-d): 2010-1-28
 * info:
 *
 */



jQuery(function(){

        var myDomain   = document.location.hostname;
        var redirecter = 'http://nun.nu/';

        $('a[href^=http://]').not('a[href^=http://' + myDomain + ']').addClass('anotherDomain');

        $('.anotherDomain').attr({
                target: '_blank',
                title: 'Redirect'
        });

        $('.anotherDomain').each(function(){
                var obj  = $(this);
                var link = obj.attr('href')
                        .replace('http://', '')
                        .replace(/&/g, '&')
                        .replace(/</g, '&lt;')
                        .replace(/>/g, '&gt;')
                        .replace(/"/g, '&quot;')
                        .replace(/'/g, '&#39;')
                        .replace(/javascript:/g, 'javascript:');
                obj.attr('href', redirecter + link);
        });

});

このコードはNP_AddExtraheadを利用して管理画面で使用してます、ついでにやったtarget="_blank"の自動付与が意外に便利。

配布用のコードはリダイレクタに「http://nun.nu/」を使ってますが、一応自前でもリダイレクタ作ってテスト運用中。

http://luvsic.net/special/Redirecter/#www.google.co.jp

タイマーつけてたんですが、なんか急かされるようで好きじゃないので削除した。とりあえず悪用されなければいいなぁ。

[参考]
jQuery/リンクURLの書き換え
location.hash の危険性
escapeHTML をぐるぐる回してみ

No comments yet


Copyright © Luvsic. Some rights reserved.