ポップアップエンドラン

ポップアップエンドランを書いてみる

野球用語でヒットエンドランとかあるようですが、アメリカでは通用しない和製英語であると聞いたことがあります。まねしてポップアップエンドランとか名前をつけた現象について書いてみたいと思います。日記休憩中なのですが、書く気になりましたので

ポップアップについて

ポップアップするwindowについては色々なやり方があるようですね。今回は代表的なポップアップ方法としては、javascriptの教科書に出てくるやりかたを調べてきました。私、javascript使いではありませんので、ネット上で確認。(汗)。次のようなコードです。

window.open(popupURL, , 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=300,height=200,left = 250,top = 200');

windowのタイトルバー以外の付属物は全部消せるものは消す。サイズや位置は固定。要は、よくあるポップアップウィンドウです。もっとも注目したい点は、アドレスバーが表示されないところです。上のコード自体は、多くのブラウザで許されているまっとうなものです。特に怪しい点はありませんしセキュリティー上の脆弱性を示すものでもなんでもありません。javascriptの仕様通りに動作していればOKというところですし世界中で使われています。

エンドランについて

和製英語のエンドランですが、ここでは、リダイレクトを意味しています。リダイレクトにも色々な手法がありますが、やはり、javascriptの教科書に出てくるような当たり前のコードを選びました。やはり、怪しいところはありませんしセキュリティー上の問題があるとも思えません。仕様通りに動いてくれれば御の字(おんのじ)ですし、世界中で使われています。

location.href=targetURL;

リダイレクトをわざわざエンドランと名前をつけたかった理由は、「やり逃げ」の意味をこめたかったからです。盗塁ではなくヒットにからめて、というところでしょうか。単なるリダイレクトを盗塁になぞらえるなら、単独盗塁はエンドランではありません。ヒット(ポップアップ)にからめて、という思いを込めています。

ポップアップエンドランの実施

ポップアップしながらリダイレクトする、ポップアップのやり逃げ(エンドラン)をするとどうなるのか、余りに単純なので、すぐさま予想がつくかとは思いますが、念のためコードを書いてみました。コピペで試せるはずです。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html lang="ja-JP">
<head>
<title>popup and run</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<script type="text/javascript">
<!-- Begin
function popUp(targetURL,popupURL) {
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open(popupURL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=300,height=200,left = 250,top = 200');");
location.href=targetURL;
}
// End -->
</script>
</head>
<body onLoad="javascript:popUp('http://www.microsoft.com','http://www.google.co.jp')">
<h1>Popup and Run</h1>
<p>You can popup a malicious window and run (redirect) to target URL...
</p>
</body>
</html>

試してみたブラウザについて

私はWindows98の上であまり新しくない(2ヵ月ぐらい前ならたぶん最新ですが)FirefoxOperaIEとで試しました。そこそこ予想通りの動作でした。ポップアップブロッカーうんぬんについては真剣に考えませんでした。そういう問題なのか?と疑問にも思いましたし。

はたしてポップアップエンドランは脆弱性検証コードなのか

はたして上のポップアップエンドランのコードは脆弱性検証コードなのか・・・。非常に単純なポップアップとリダイレクトを組み合せたに過ぎません。これがあかんのならば、javascriptの仕様が悪いのかなぁと思います。ブラウザの実装がお馬鹿さんだという証拠もありません。

悪用できるのか?いや、これ単独で悪い事が出来るのかと言えば出来ません。上のサンプルでは、マクロソフトのサイトのトップページにGoogleのポップアップをしてみせただけです。まず考えられるのは、このGoogleのページの替わりにどんなページでも使えるということでしょうか。反マイクロソフトのイデオローグのページでもなんでもポップアップ可能です。そのウィンドウがマイクロソフトのトップページとほぼ同時にレンダリングされるようです。しかしその為には、わざわざ、このサンプルのような仕掛けのページをユーザに見せなければいけません。危険なページにユーザを誘導するというステップが必要でしょう。やりかたとしては、例えば、IEのステータスバーをごまかす手法が考えられるでしょうか。マイクロソフトのトップページへのリンクにみせかけてステータスバーに表示する、しかしてその実態は罠ページ、だが罠ページはポップアップウィンドウを駆動した後、直ちに本来のマイクロソフトのトップページへリダイレクトする、このような形が考えられるでしょうか。マイクロソフトのページへのリンクをユーザは踏んだつもりですので、マイクロソフトのページが期待通り表示されそのアドレスが正当のものなら信頼度は高いと思われます。いつもと違うのは、ポップアップウィンドウが出ていることでしょうか。ポップアップエンドランとステータスバー偽装とを組み合せるなり、他の脆弱性と組み合せるなりで、悪用は可能なのかもしれません。

ユーザの対処方法

ひとえに、URLアドレスバー表示のないポップアップウィンドウが出るサイトでは何もしないことです。適切なポップアップブロッカーも有用でしょうけれどもあてにしすぎてはいけません。出きれば、普段はjavascript等各種スクリプトをオフにしてブラウズしましょう。

サイト運営者さんの対処方法

自身の運営するサイトがポップアップウィンドウを使うようでしたら早急にやめるべきです。まともなサイトならポップアップなど絶対に使わないという常識がユーザのあいだに出るように、率先して運営するサイトの設計を見直していただければと思います。急には出来ないというなら、ポップアップしたウィンドウにはせめて、アドレスバーを表示し、しかもウィンドウサイズを固定しないでください。アドレスバー表示が途中までしか見えないとつけこまれる可能性もあります。

仕様なのか脆弱性なのか

私にはわかりません。私が世界で最初にこのポップアップエンドランに気がついたとも思えません。恐らく既知でしょう。既知だけど直せないのかな?

感想なのですがアドレスバーなりステータスバーなりを仕様通りにごまかせるとしたらとてもとてもイヤなことです。ステータスバー偽装について無頓着であるようなブラウザは危険で使えないとも言えるのですが修正は難しいのでしょうか、なかなか朗報を聞かなかったりします>某ブラウザ。

追記

ご親切な方から指摘あり、追記します。

上で某ブラウザのステータスバー偽装うんぬんについて私は述べていますが本質とは無関係でした。謹んでお詫び申し上げます。javascript作動を前提にしていますから罠ページへのリンクは、onclickやonmouseoverなどのイベントハンドラにてステータスバーを偽装しながら望むページへ誘導すればいいとのこと。そうでしたね。javascriptだけでフィッシング詐欺を行なうことは簡単に出きるということですね。すみません。私の頭の中ではたとえばjavascript記述の出来ないはてなダイアリーからでもステータスバー偽装しつつ罠ページに飛ばせるよなぁという思いが支配的だったものですから、具体的な実験でもして、という予定だったものですから、とか具にもつかない言い訳でした。

10のべき乗

10のべき乗…POWERSOF10

次々に縮尺を10倍にしていく。

10のべき乗…POWERSOF10、これ大好き。

ハウルの動く城

本日悲しい事があったので気分転換にハウル様を見に行った。もう綺麗。掃除したての床に家具が映り込んでいる!というような。既に見に行っている知人の妙齢の女性と適齢前の女性とに聞いたが面白くなかったとのこと。しかし私にはひどく面白かったです。嬉しい誤算。恋人どうしで見に行ってもいいかな。トトロっぽくないので子供向けではないと思う。家族連れで見にいかないほうがいいかも。系統としてはどうなんだろう?魔女の宅急便あたりなのかな?う〜ん。ナウシカラピュタを期待しないでください。しっかりとした「主張したい」芯になるテーマを探さないで下さい。内容とは全く無関係ですが紅の豚同様、宮崎先生が好きなようにやってみた、ということで良いのでは?そしてそれを私は楽しめた、ラッキー。

ちなみに原作を本日読んでみたが(早っ)全然違うぞ。原作では主人公の老女(実は少女)は、結局のところ言霊使いなのです。杖に息をかけて言葉をかけるとその杖が知性を持った命となるような、そんな感じです。一方、映画ではラストシーンの近くで、主人公さんは、その片鱗をみせますが、映画中では特に解説をしていません。そのシーンでのセリフは原作と全く同じでしたので、驚きましたが。映画的にはもう少し尺を伸ばさないと海外ではウケないだろうと思います。日本人なら感性で受けとめられても、言葉で解説されないと気に食わない人が多いだろうし。

なお、今月号?(12)の雑誌ユリイカをついでに読みましょう。千と千尋の神隠しハウルの動く城との畏るべき相似性・合同性が論評されていました。うなることうけあい。千と千尋の神隠し制作途上で既にハウルの動く城について宮崎先生が無意識的な発酵をさせていたとしか思えない・・・「釜爺」がハウルの物語の中では誰なのか?についてなど。うふふはは。