外部リンクをRedirecter経由にするjQueryコード
- 投稿日 : 2010-01-25, 16:45
- 最終更新日時 : 2011-05-21 08:53:35(履歴)
- タグ(Nucleus / 管理画面 / jQuery)
- カテゴリ(Javascript)
- 記し人(luvsic)[PDF]
- 閲覧数(3734)

Nucleusの管理画面に外部リンクはリダイレクタをつかいたいな、と思ってた。期待したいメリットは3つ。
- リンクのアドレスを目視で確認できる
- リファラ隠し CMSの管理画面アドレス漏れ
- リファラ隠し セッションID漏れ
JAVAのシステムとかで「sid=」みたいなのが出てるのをちょくちょく見てて、Nucleusはチケットだから多分別物なんだろうけど、なんかもやもやもが残ってて。ちょうどきっかけがあったので、昔作りかけだったコードを仕上げてみることにした。
/*
* Ex: Another location link use target _blank and redirecter.
* UPDATE(y-m-d): 2010-1-28
* AUTHER: Luvsic
* LICENCE: MIT
* INFO: https://luvsic.net/item/98
*
*/
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, '<')
.replace(/>/g, '>')
.replace(/"/g, '"')
.replace(/'/g, ''')
.replace(/javascript:/g, 'javascript:');
obj.attr('href', redirecter + link);
});
});
このコードはNP_AddExtraheadを利用して管理画面で使用してます、ついでにやったtarget="_blank"の自動付与が意外に便利。
配布用のコードはリダイレクタに「http://nun.nu/」を使ってますが、一応自前でもリダイレクタ作ってテスト運用中。
https://luvsic.net/special/Redirecter/#www.google.co.jp
タイマーつけてたんですが、なんか急かされるようで好きじゃないので削除した。とりあえず悪用されなければいいなぁ。
[参考]
jQuery/リンクURLの書き換え
location.hash の危険性
escapeHTML をぐるぐる回してみ
No comments yet