「ブラウザが使いづらくなる」などというと,「何のこっちゃ」と思うかもしれない。ブラウザはバージョンアップを繰り返し,機能は次第に充実している。むしろ,使い勝手は向上しているのではないか。そう考えるのが普通かもしれない。また,GoogleマップやGoogle Docs&Spreadsheetsに代表されるように,いわゆるAjaxを駆使することでブラウザだけで操作性のいいアプリケーションを実現できるようになった。さらにパソコンだけでなく,携帯電話/スマートフォンにもフルブラウザが搭載され,ブラウザの利用シーンは格段に広がっている。

 筆者も,この点には全く異論はないし,どこにいてもブラウザさえあれば様々なアプリケーションを利用できる環境は確かに便利だとも思う。ではなぜ使いづらくなると言っているのか。問題は,ブラウザを狙った攻撃が目立ち始め,エンドユーザーが従来以上にブラウザのセキュリティを意識しなければならなくなっていることだ。

 実は,こんな内容の話を「日経コミュニケーション」の3月1日号とITproの特番「変わる企業セキュリティの常識」に,「Web 2.0は危険がいっぱい」という記事として掲載した。その話を,あえてここで改めてしているのは,最近筆者の危機感が,より一層高まっているからだ。原因は,今後「ブラウザのオフライン利用」が進みそうなことと,デスクトップで稼働するWebアプリケーションの危険性に気付かされたことである。

 ブラウザを狙った攻撃の典型例は,ほとんどのWebアプリケーションに潜んでいると言われる「クロスサイト・スクリプティング」のぜい弱性を突いた攻撃。クロスサイト・スクリプティングのぜい弱性というのは,Webアプリケーションの入力フォームなどからJavaScriptを入力すると,ほかのユーザーのブラウザでそのスクリプトが実行されてしまう弱点である。クロスサイト・スクリプティングは数年前から指摘されているが,いつまでたっても攻撃はなくならない。それどころか,Ajaxアプリケーションの台頭によって危険度はますます高まっている。

 Ajaxによるアプリケーションを見ればわかるように,JavaScriptを使い倒せばかなり高度な処理が可能になる。ユーザーによるキー入力,あるいはブラウザが記憶するクッキーを盗み出すような悪質なプログラムも仕込まれかねない。Windowsのクリップボードに一時記憶した情報を盗み出すことも可能だというから驚きだ。クッキーを盗まれると,Webメールの盗み見,なりすましによるECサイトの不正利用などにつながる。どこかのWebサイトにログインする際に,IDやパスワードをコピー&ペーストしていれば,クリップボードからパスワードを盗まれる。機密文書から別の文書を作るために文面をコピーすれば,それを抜き取られる可能性だってある。

 ブラウザがオフライン利用されるようになるとさらに恐い。ブラウザのオフライン利用というのは,ブラウザ上で一種のプロキシ・サーバーを稼働させて,Webアプリケーションを利用すること。データを大量にキャッシュし,ネットワークにつながらない状態でもAjaxアプリケーションを利用できるようになる。Webメールなら,オンライン時に受信ボックスのメールやアプリケーションのコードをダウンロードしてキャッシュ。オフライン時には,プロキシ・サーバーが受信ボックスのWebページを提供したり,メール送信を受け付けたりする。実際,Firefoxの次期版ではオフライン機能が搭載されそうだし,「Dojo Offline Toolkit」というツールキットも公開されている。

 この仕組みがあれば,Ajaxアプリケーションの利便性は飛躍的に高まる。本当に今のデスクトップ・アプリケーションとそん色なくなりそうだ。ただあくまでも,利用するにはJavaScriptを動かすことが前提になる。オンライン時,JavaScriptを有効にしたままでよいのか。様々なデータをキャッシュするとなると,そこには個人のメール,ワープロや表計算ソフトで作った機密文書などが含まれる。仮にオフラインになる前に悪質なスクリプトを埋め込まれていたら・・・。ローカルのプロキシ・サーバーにキャッシュしたデータを,オンラインになると同時に犯罪者のサイトに送信されることだってあり得る。今年2月,Googleデスクトップに潜んでいたクロスサイト・スクリプティングのぜい弱性が報告された。このGoogleデスクトップはローカルでWebサーバーを稼働させる仕組みになっており,ここにぜい弱性があった。同様のぜい弱性がブラウザのローカル・プロキシ・サーバーに潜在する危険性は決して小さくない。

 ブラウザでJavaScriptを実行させなければ,こうした問題は起こらない。FirefoxやOperaでは,ブラウザの設定を簡単に変更できる仕組みが用意されていて,アクセス先ごとにJavaScript動作のオン/オフを手軽に切り替えられる。ブラウザのスクリプト禁止設定については,動画で操作方法を解説するページを設けたので,興味のある方はご参照いただきたい。

 ただ,JavaScriptは今後ますます利用が進む。複数のコンテンツを組み合わせてマッシュアップすると,アプリケーションは一層高度になる。そうなったとき,いちいち切り替えるのはやはり面倒。ブラウザが便利になるほど,筆者の言う使いづらさは際立ってくる。はてさて,どうしたものか。