[User Interface] | ||||||||||||
Webページの仕事妨害攻撃に対処する方法
|
||||||||||||
|
解説 |
Webサイトの中には、Webブラウザの機能を逆手にとって、強引なマーケティング活動を行ったり、面白半分にユーザーを恐怖に陥れたりするページを公開しているところがある。例えば読者は、どこかのWebページを表示させた途端、Webブラウザのウィンドウが次々と表示されてしまい、収拾に困ったという経験はないだろうか。あわててウィンドウを閉じようとしても、すぐに新しいウィンドウが表示されたり、ほうっておいても、時間の経過とともに次々とウィンドウが表示されたりするというものだ。
これは、一部のアダルト・サイトが使う常套手段の1つで、これにより次々と広告ページを開いたり、別の提携サイトのページを表示したりする(この手のアングラ・サイトは、相互にトラフィックを交換していることが多い)。ならばアダルト・サイトなど見なければよいと思う向きもあろうが、検索サイトを使って探し物をしていると、ひょんなことから、アダルト・サイトのURLが結果に紛れ込むこともある。検索結果として表示されるタイトル情報やURL情報から一見してアダルト・サイトと分からないと、うっかりクリックしてしまい、ウィンドウ生成による仕事妨害攻撃にさらされることになる(実際、筆者の細君はこれで真っ青になった経験を持つ)。
たいていは、JavaScriptの機能を悪用して、新しいウィンドウを生成している場合が多い。一定時間ごとにタイマを仕掛けて新しいウィンドウを開いたり、ウィンドウがクローズされるというイベントをキャプチャして、そこでまた新しいウィンドウを開いたりしているのだ。
例えば、Webサーバが手元にあるなら、次のJavaScriptを「neverclose.html」という名前で適当なフォルダに保存して、Webブラウザで表示してみよう。ただしソース中で参照しているので、保存するファイル名は必ず「neverclose.html」にしておくこと(注意:これをローカルのファイルとして保存し、Webブラウザで直接オープンしてもよいが、その場合は表示が非常に高速に行われるので、以後で解説する操作が正しく行えなくなる可能性がある)。
<SCRIPT language="JavaScript"> |
簡単に説明すると、1行目から5行目まで(「<SCRIPT …… </SCRIPT>
」の部分」)がJavaScriptのプログラムで、300×200ピクセルのウィンドウを表示するOpenWinという関数を作っている。7行目の「<BODY onUnload=……>
」とは、ブラウザのウィンドウが閉じられたときに発生するイベントで、このタイミングで先のOpenWinを呼び出している。すなわち、ウィンドウを閉じると、次のウィンドウが表示され、何回やってもウィンドウは表示されたままになるというわけだ。
上記のコードをHTMLファイルとして保存して、IEで表示したところ |
このページは、ウィンドウが閉じられると次のウィンドウ(同じHTMLファイル)を表示するので、普通にクローズ・ボックス(右上の×マーク・ボタン)をクリックするだけでは閉じることができない。 |
JavaScriptを使った仕事妨害攻撃から根本的に身を守りたいと考えるなら、IEのスクリプト機能をオフにしてしまえばよい([インターネット オプション]ダイアログの[セキュリティ]タブにある[レベルのカスタマイズ]ボタンから表示される[セキュリティの設定]ダイアログの[アクティブ スクリプト]を無効にする)。ただしこの場合には、「善良な」WebページのJavaScriptも実行されなくなるので注意が必要である。ゾーン設定と組み合わせれば、ゾーンごとに設定を変えたり、特定のサイトだけ設定を変えたりすることができる。この詳細は別稿「Windows Tips:IEのセキュリティ設定を変更してセキュリティ機能を強化する」を参照のこと。
操作方法 |
Escキーを連打する
それでは、次々と表示されるウィンドウを停止するにはどうするのか。これには、Escキーを連打すればよい。Escキーは、IEのページ・ダウンロードを中止するキーである。JavaScriptによるプログラムは、ページをダウンロードしてから実行されるので、次々と表示されるページのダウンロードを中断させれば、JavaScriptの実行を阻止できる。ただし、これにはタイミングよくEscキーを押さなければならない。タイミングが早すぎたり、遅かったりすると、ページ・ダウンロードはうまく中断されない。このためEscキーを連打しながら、意に反して表示されたウィンドウを次々とクローズしていけば(マウスでウィンドウの右上にあるクローズ・ボックスをクリックする)、JavaScriptの実行を阻止しながら、余計なウィンドウを1つずつ閉じることができる。
Escキー以外にも、Alt+F4キーを押して、ウィンドウを強制的に終了させるという手段もある。しかし前出のようにウィンドウの終了時に新たなウィンドウを表示するタイプのスクリプトでは、Escと同じように連打しなければならないが、Alt+F4はあらゆるウィンドウの強制終了キーなので、うっかり別のウィンドウを消してしまう危険がある。この点、Escキーなら、たいていのアプリケーションは無視するのでこうした危険性は少ない。
例えば、先ほどのJavaScriptの例で表示したウィンドウで試してみた。表示するページの情報が少ないので、Escキーが有効に効くタイミングは非常にタイトだが、何とか閉じることができた。具体的には、ページの内容(「このページは閉じられない」という文字列)が表示される前にEscが効いて真っ白なウィンドウが表示されたり、次のようにIEによってエラーが表示されたりすれば、JavaScriptは実行されないので、通常どおりにウィンドウをクローズできる。
Escキーによって処理が取り消されたことをことを知らせるメッセージ |
このメッセージが表示されれば、もはやJavaScriptは実行されず、ウィンドウを閉じることができる。 |
もしキーを押すタイミングがシビアすぎて、どうしても消すことができなければ、いったんログオフするか、Windowsを終了(シャットダウン)もしくは再起動させるという方法もある。最近のマシンならば、電源ボタンを押せば強制的にシャットダウンが行われるようになっているが、これを実行する場合はほかのアプリケーションで作業中のファイルなどを確実に保存して終了させておく必要がある(念のために、ほかのすべてのアプリケーションを終了させてからしばらく(数十秒)待ち、ディスクのアクセス・ランプがまったく点灯しなくなってから実行すること)。くれぐれもいきなり電源コンセントを抜いたりしないようにしていただきたい。そういうことをすると、アプリケーションやシステムが保持していたデータなどが壊れ、例えばファイル・システムが破壊されて(整合性が取れなくなって)しまったりする。
なお、ウィンドウ地獄から解放されたら、インターネット一時ファイルに保存されてしまったキャシュの内容や、履歴の内容をクリアすることをお忘れなく([インターネット オプション]ダイアログの[全般]タブで操作可能)。
この記事と関連性の高い別の記事
- 任意のウィンドウを選んで素早くタイル表示する(TIPS)
- タスク・バーで複数のプログラムを一斉に閉じる方法(TIPS)
- ヘルプ画面を別ウィンドウで開く方法(TIPS)
- Windowsで画面外に移動してしまったウィンドウを表示領域内に戻す(TIPS)
- Windows Server 2008のInternet Explorerのセキュリティ設定を緩和させる(TIPS)
このリストは、デジタルアドバンテージが開発した自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
「Windows TIPS」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|