IEの気持ちを知るためのブックマークレット(1)

おことわり

IEの気持ちを知るためのブックマークレット(1)と、(1)なぞ書いておりますが続編があるかどうか疑わしいのです。あらかじめお断りしておきます。構想はあるのですけれど表現能力がありません。(--)

手元のXPSP2で動作確認しています。昔のでうまくいかなかったらごめんなさい。

IEの気持ちを知るためのブックマークレット

ただいまJscriptを勉強していますので(好き勝手に)副産物でブックマークレットが出来上がりました。たいしたものではないのですが個人的には面白かったので「ねぇねぇみてみて」精神です。こんなの。文法間違いや素人特有の思慮の欠けている部分がありましたらご教示くださいませ。

javascript:(function (){var d=document;var t=d.createElement('TEXTAREA');t.appendChild(d.createTextNode(d.documentElement.outerHTML));var r = t.createTextRange();r.execCommand('copy');})();

このブックマークレットの効能

  1. 好きなサイトの好きなページをIEで見る。
  2. ブックマークレット起動。
  3. その時点でのそのページのHTML構造をクリップボードにコピーしてくれる。
  4. 適当なテキストエディタにペーストする。
  5. ペーストしたHTMLソースとHTMLのソースを比べて楽しむ。【謎】

ええと、主としてなんらかの意味でJscript等で動的にコンテンツの内容が変化しているものが、いったいぜんたいどうなっっちゃっているの?というのを見て楽しむものです。え?楽しくない?すみませんです。

応用としてJScript.Encode等でHTMLソースが暗号化されているもののソースをこのブックマークレットで見ることが出来ます。商用のhttp://www.protware.com/のdemonstrationとかも一発です。

事例1

次のようなHTMLでは、クリック後10秒くらいの間だけiframe要素が出現してgoogleのページを見せてくれるようだ。

<body onclick='a=document.createElement("\<iframe src=\"http:\/\/www.google.com\/\"\>\<\/iframe\>");document.body.appendChild(a);setTimeout("document.execCommand\(\"refresh\")",10000);'>

<center><br><br><br><br><br><br>Click AnyWhere You Want</center>

iframeでgoogleのサイトの内容が見えている間に、このブックマークレットを使うと次のような結果を得ます。

<HTML><HEAD></HEAD>
<BODY onclick='a=document.createElement("\<iframe src=\"http:\/\/www.google.com\/\"\>\<\/iframe\>");document.body.appendChild(a);setTimeout("document.execCommand\(\"refresh\")",10000);'>
<CENTER><BR><BR><BR><BR><BR><BR>Click AnyWhere You Want</CENTER><IFRAME src="http://www.google.com/"></IFRAME></BODY></HTML>

実際にiframe要素が増えていることがわかります。IEの気持ちを知るためのブックマークレットです。それに大文字好きなのね。私と正反対。

事例2:意外な発見

ダイレクトにIEで画像ファイルを見たときのIEの気持ちをこのブックマークレットで見て見ましょう。次のようなアドレスの画像をアドレスバーにダイレクトに入力してみます。

http://www.microsoft.com/h/en-us/r/ms_masthead_ltr.gif

画像が表示されたらば、ブックマークレットを起動し、メモ帳にペースト。あら不思議。こんなのが。

<HTML><HEAD></HEAD>
<BODY><IMG src="http://www.microsoft.com/h/en-us/r/ms_masthead_ltr.gif"></BODY></HTML>

なるほど、画像をダイレクトに表示するとIEはHTMLを自動生成して見せてくれているのですねぇ。なんだか妙に納得です。これぞDHTMLの真髄(違)

事例3:javascriptスキームでページを作成

未稿。

続編はこちらです。

光回線が自室に来た。(25日)

ONU(終端装置)もある。ルーターとPC、ルーターと電話(IP)もつなげた。プロバイダからの資料も届いた。でもフレッツ回線のNTTから来るはずの資料が来ていない。同梱のLANケーブル1本も無い。なんにも設定できずに稼動せず。うゎゎぁぁぁん。

しかたがないので旧回線で書いています。

Firefox1.0でスクロールを行うだけで悪意あるプログラムが起動される

mikx.de|Firescrolling - Proof-of-ConceptをFirefox1.0で体験しました。DOS窓が開いてディレクトリリストを取られてしまいました。ということはサンドバッグ状態ですね。何をされても抵抗できません。強烈だなぁ。

上のデモンストレーションではc:\にbooom.batというファイルが作成されます。そのbatファイルが実行されています。デモンストレーション実行後はそのファイルをExplorerで消しておきましょう。(Windowsの場合)

これは既知の3種の問題の複合技とのことです。

Firefox1.01 にて対応済みとのことです。でも日本語版が待ち遠しいですねぇ。追記:1.01日本語版はリリース中止になりました。企業ユースでFirefoxな所は大変なのではないでしょうか。個人的には光通信が開通したら真っ先にFirefox1.01(英語版)をダウンロードしたいと思います。

余談ですがFirescrollingのデモそのものは、Microsoft Anti-spyware実行が阻止されたという報告があがっているようです。すごいぞ。FireFIXだ。

secunia風に言えば今回のセキュリティFIXは、Criticality:Highly criticalです。スクロールするという人手がかかっているからHighly criticalですが、無人化にまであと一歩ぐらいですから実質的には、これ以上危険なクラスはないExtremely Criticalに限りなく近いのです。(そういえば昔、IEでですが、スクリプトでウィンドウのリサイズをonClick検知で同時に行い、クリックをドラッグアンドドロップと化して危険物をIEのお気に入りに放り込んでしまうという荒業が取りざたされたことがあります。スクロールでトリガーがひければ、ほかのイベントでも何かできそうです。)

あ、書いていて思い出しました。今回のFirefox1.0のセキュリティ関連の話題がメーリングリストにのっていて、人の操作抜き(つまりクリックとかスクロールとか不要で開いただけでアウト)で、SMB共有エリアにあるファイルを踏み台にしてcドライブ上で何かしてしまうという実証デモが論じられていました。今までにもIEのバグをたくさんみつけたJelmer Kuperus氏が脊髄反射で5分で作ったらしい。インターネット上で何か見た瞬間に手元のパソコンに悪さされる可能性があるので、英語版でよろしければ、今すぐにFirefox1.01のダウンロードを強くおすすめします。

日本語版1.01はリリース延期となっております。以下のトップページ参照。

Firefox 1.0 のアップデート版リリースについて

Firefox 1.0 のセキュリティアップデートとしてリリースされた Firefox 1.0.1 は、不具合が見つかり、現在、対応を Mozilla Foundation にて作業中です。Mozilla Japan からは、その対応版を日本語化してリリースする予定です。ご迷惑をおかけいたしますが、日本語版がリリースされますまで、今しばらくお待ちくださいますお願いいたします。

アドレスバーに何かいれると途中でクラッシュするらしいです。IDN対応関係かなぁ?

その後、Firefox1.01日本語版は遅れもなく無事にリリースされました。現在(20050323)1.02英語版がまもなく出ようとするところです。

#FireScrollingって火炎の巻物ですか?Halit級ならまだしも今回は中まで焦げ焦げだから危険な巻物ですね。マハリトくらいかな。中級冒険者必須の魔法。ウィズしたくなってきた。