ページへ戻る
印刷
XSS クロスサイトスプリクティング
をテンプレートにして作成 ::
XOOPS マニア
UsersWiki
:nao-pon/blog/2006-06-30 をテンプレートにして作成
開始行:
** XSS クロスサイトスプリクティング
#keyword()
RIGHT:&tag(ネット,プログラミング);
JavaScript を使った動的なサイトページ作成方法の中に、Ajax...
そこで、別ドメインのサーバーから随時データを受け取りたい...
そこで、面白いことを思いつきました。
[[YouTube NAVI:http://youtube.navi-gate.org/]] という You...
#code(){{{
<script id="youtube_navi_js" src="http://youtube.navi-gat...
}}}
任意のページにこのHTMLを貼り付けると、リアルタイムで検索...
こんな感じです。現状は5秒ごとに内容が更新されます。 :)
#html(youtube_navi_tags)
もちろんローカルに置いたHTMLでもOKです。 :D
***仕掛け
上記の HTML から呼び出される JavaScript tags.js は次のよ...
#code(){{{
(function(){
var elm;
if (! (elm = document.getElementById('youtube_navi_tags'...
{
var scr = document.getElementById('youtube_navi_js');
elm = document.createElement('span');
elm.id = 'youtube_navi_tags';
elm.className = 'youtube_navi_tags';
scr.parentNode.insertBefore(elm,scr);
}
elm.innerHTML = "この部分にタグのHTMLが入ります";
setTimeout(function(){
var scr;
if (scr = document.getElementById('youtube_navi_js')){s...
scr = document.createElement('script');
scr.id = 'youtube_navi_js';
scr.src = 'http://youtube.navi-gate.org/js/tags.js';
scr.setAttribute('type','text/javascript');
scr.setAttribute('charset','UTF-8');
document.body.insertBefore(scr,document.body.firstChild);
},5000);
})();
}}}
変数汚染をしないように、無名関数に閉じ込めてあります。
+タグのHTMLを表示するコンテナ <span id="youtube_navi_tags...
+id="youtube_navi_tags" の <span> の内容を書き換え。
+5秒後に自分自身を書き換え
たったこれだけです。~
肝心の tags.js は、PHP にて随時書き換えを行っています。
ただ、ブラウザが IE の場合は、タイムスタンプが変わっても...
#code(){{{
<Files tags.js>
Header add "Expires" "Thu, 01 Dec 1994 16:00:00 GMT"
Header add "Pragma" "no-cache"
Header add "Cache-Control" "no-cache"
</Files>
}}}
思いのほか、すっきりとできちゃいました。 :p
----
タグは100件保存しているので、100件表示バージョンも作って...
#code(){{{
<script id="youtube_navi_js100" src="http://youtube.navi-...
}}}
#html(youtube_navi_tags100)
----
#comment(,btn:つっこみ)
----
終了行:
** XSS クロスサイトスプリクティング
#keyword()
RIGHT:&tag(ネット,プログラミング);
JavaScript を使った動的なサイトページ作成方法の中に、Ajax...
そこで、別ドメインのサーバーから随時データを受け取りたい...
そこで、面白いことを思いつきました。
[[YouTube NAVI:http://youtube.navi-gate.org/]] という You...
#code(){{{
<script id="youtube_navi_js" src="http://youtube.navi-gat...
}}}
任意のページにこのHTMLを貼り付けると、リアルタイムで検索...
こんな感じです。現状は5秒ごとに内容が更新されます。 :)
#html(youtube_navi_tags)
もちろんローカルに置いたHTMLでもOKです。 :D
***仕掛け
上記の HTML から呼び出される JavaScript tags.js は次のよ...
#code(){{{
(function(){
var elm;
if (! (elm = document.getElementById('youtube_navi_tags'...
{
var scr = document.getElementById('youtube_navi_js');
elm = document.createElement('span');
elm.id = 'youtube_navi_tags';
elm.className = 'youtube_navi_tags';
scr.parentNode.insertBefore(elm,scr);
}
elm.innerHTML = "この部分にタグのHTMLが入ります";
setTimeout(function(){
var scr;
if (scr = document.getElementById('youtube_navi_js')){s...
scr = document.createElement('script');
scr.id = 'youtube_navi_js';
scr.src = 'http://youtube.navi-gate.org/js/tags.js';
scr.setAttribute('type','text/javascript');
scr.setAttribute('charset','UTF-8');
document.body.insertBefore(scr,document.body.firstChild);
},5000);
})();
}}}
変数汚染をしないように、無名関数に閉じ込めてあります。
+タグのHTMLを表示するコンテナ <span id="youtube_navi_tags...
+id="youtube_navi_tags" の <span> の内容を書き換え。
+5秒後に自分自身を書き換え
たったこれだけです。~
肝心の tags.js は、PHP にて随時書き換えを行っています。
ただ、ブラウザが IE の場合は、タイムスタンプが変わっても...
#code(){{{
<Files tags.js>
Header add "Expires" "Thu, 01 Dec 1994 16:00:00 GMT"
Header add "Pragma" "no-cache"
Header add "Cache-Control" "no-cache"
</Files>
}}}
思いのほか、すっきりとできちゃいました。 :p
----
タグは100件保存しているので、100件表示バージョンも作って...
#code(){{{
<script id="youtube_navi_js100" src="http://youtube.navi-...
}}}
#html(youtube_navi_tags100)
----
#comment(,btn:つっこみ)
----
ページ名: