XP SP2 ユーザへのポップアップブロックのご案内

WindowsXP のSP2ユーザに対して、自動popupを使うサイトが、ポップアップブロックについてどのようにご案内しているのかが気になります。ちょっとURL集めて見ました。

IT系な会社でも駄目な説明しているところが思いのほかありますね。NECの121wareとかniftyとかマカフィーとか。いずれも、ポップアップブロックの解除の危険性をユーザに充分に説明しているとは思えません。まずは不要なポップアップなど使わないサイト設計に修正していただくことが一番なのですが、(そもそもそういうサイトとはおつきあいしたくないものですし)それまでのつなぎとしては、もうポップアップブロックの解除の説明をもう少しだけなんとかして欲しいと思います。自分が運営しているサイトのみポップアップブロックの解除をお願いすることとし、全てのサイトの解除は危険であることを明記して頂きたいものです。

XP SP2 ユーザへのポップアップブロック関連

以下のページのコンテンツは、XP SP2出現以後の対応を考える上で、サイト製作者にとって簡素にまとまっていてとてもわかりやすく参考になると思います。Windows XP SP2 (Service Pack2)でのJavaScriptの動作に関して

この参考文献を読めばよくわかりますが、もう自動ポップアップなど使わない時代に突入しています。自動ポップアップでログインさせようとかするサイトはユーザに信用されなくなりつつあると考えて頂きたいものです。

上の参考文献で、ちょっとだけ興味深かったことがあります。XP SP2 においては、自動ポップアップは禁止されているが、ユーザが手動でクリックしたポップアップはまだ使えるという点は知られているところです。この手動のクリック(ボタンなりなんなり)をjavascriptで押したらどうなるかについての若干の記述があるのです。面白かったです。

一般にはあまり強調されていないようですが、ポップアップされたウィンドウのタイトルバーは不可視に出来ず、しかもそのタイトルバーの表示には、URLが表示されているということがあります。確かにセキュリティー面では向上なのでしょう。その反面、本来のタイトルを表示する機能が損なわれているような気がします。私が設計者なら、アドレスバーの不可視も禁止にしてタイトルバーの表示内容は従来通りとしたいところです。なお、ポップアップされたウィンドウのステータスバーも不可視に出来ませんが、もともとステータスバー偽装なんていくらでも手がありますからどうなのかと。いえ、ステータスバーが見えるのは良い事です。いつまでたっても各種の偽装ができるステータスバーがおかしいのです。

話しが前後しますが、ポップアップされたウィンドウのタイトルバーに表示されるURL文字列の最大長って決まっているのでしょうかねぇ。http-equivというお名前のセキュリティー研究者さんが指摘していますが、magicDNSの技法がまだ有効ですので、タイトルバーに居候しているURL文字列をごまかすことは可能ですねぇ、たぶん。確かめませんが。やはりアドレスバーの表示は必須としておく設計が良かったかなぁ。で、ウィンドウサイズの固定も出来なくする。そうすれば、ユーザがアドレスの確認がしやすくなりますよねぇ。今ごろこんなことに不満を言ってもしょうがないのですけれど。

bugtraqとかでhttp-equivさんがおっしゃるには、XP SP2 のポップアップブロックには抜け穴があって自動ポップアップが可能な手法があるとのこと。先日のポップアップエンドランにその手法を混ぜて使うとどうなるのかと思い、さっきザックリやってみたのですが、unpatchな xpIE6 で失敗。"A Runtime Error has occurred. Do you wish to Debug? Line:19 Error:'x.DOM.script' is null or not an object" とか表示が出て止まります。同じものがWin98だと作動するんですけどねぇ。SP2ではどうなるのかまで調べる気力がなくなりました。あまり正業から逃避していてもアレなのでしばらく放置の方向で。以下、http-equivさんによるSP2でも自動ポップアップするよデモ。ブラクラのように見えるかもしれませんが実際にはクラッシュしません。ポップアップしたページのスクリプト三角関数かなにかを使ってウィンドウの位置をミリ秒単位で移動しているだけらしいです。綺麗といえば綺麗か。

SP2のポップアップブロックとXSS

ちょっと寝酒を買いに行って帰り道に思いついたのでメモだけ。

XSS脆弱性を持つサイトAをSP2ユーザが自動ポップアップを許可するように設定した場合について考察せよ。サイトAを踏み台にしてクラッカーはログインフォームなどを含む任意のポップアッウィンドウを生成した後、ターゲットとなるサイトBへリダイレクトする。Focusはポップアップのほうになるように出来そうだ。

教訓:XSSは自分のサイトのみならず、周りに迷惑をかける>サイト製作者・運営者。または、ポップアップするウィンドウで大事なデータを入力して頂くようなことは絶対にありませんと胸をはって強調し、ユーザに徹底して広報するサイトは取引先として信用がおけそう。

それにつけても、anchor要素にoneventであれなんであれ、javascriptを許すのは仕様ミスだよなぁ。それと、HTMLページ全体の解析において構造を間違って補完し、参照先を正しく解釈できない某IEは罪が大きいなぁ。スタイルシートからのscriptの実行においてはpopupの自動実行になるのか調査が必要。どうやらブラックリストのような気がする。最初にフラグを立てて、一通りjavascriptの実行が終わった後でフラグをオフにする。フラグがONの間だけ、ポプアップを無効にしているのではないかと思量される。また、イベント発生時にフラグをONにしているとも考えられる。イベント終了時にオフか?MicrosoftOfficeをインストールしているクライアントのみで、http-equiv氏の自動ポップアップが有効かもしれない。これは、オンオフのブラックリストにoffice製品の何かがのっていなかったことを意味するのではないか。http-equiv氏は穴を見つけたのではないのか?onloadなどのイベントや初期駆動のスクリプトに頼らずにサブウィンドウを開くとするならば、たとえばスタイルシートの中でのスクリプト起動はどうなのだろう、または、head要素で関数だけ記述して・・・

満を持してMicrosoftが設計しているのだから、この酔いどれ頭の妄想など全部対処済みであるに違いない・・・ホワイトリストにて手動でポップアップサブウィンドウを開くことが出来る条件を厳密に定義しているに違いない。そしてそれ以外はボツ。そうであるに違いない・・・

ちょっとだけ・・・私だけ・・・?って、だいたひかるだったっけ?