【2/17】今年は「濃厚」技術トーク!@ITメールセミナー スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷

Ajax解体新書(2)

Ajaxの特徴に潜むリスクをサンプルアプリで確認しよう


株式会社NTTデータ
技術開発本部 ソフトウェア工学推進センタ
木村 利幸
2006/7/19


 第1回 Ajax技術の目に見えない通信内容をのぞいてみようでは、Ajaxの技術背景を解説しました。今回は、「セキュリティ」という観点でAjaxを見ていきたいと思います。
 2回目の今回は、非常に幅広く、奥が深い「Ajaxの特徴に潜むセキュリティリスク」を、実際のサンプルアプリケーションの通信や、マウスの動きを動画で見ながら、理解しましょう。スパイウェアやキーロガーへの基本的な対策も解説します。

 通常のWebアプリと異なるAjaxの特徴に潜むリスク

- PR -
 「Ajaxのセキュリティ」といきなりいっても、『Ajaxとはいえ、単なるWebブラウザで動作するアプリケーションなのだから、これまでのWebアプリケーションのセキュリティとあまり変わらないのでは?』と予想される方も多いでしょう。確かに、Webアプリケーションとして注意すべきセキュリティのポイントは、Ajaxにおいても共通して当てはまると考えて問題ありません。ただし、今回は、通常のWebアプリケーションとは異なり、Ajaxにおいて特徴的なポイントを取り上げ、説明を加えることにしたいと思います。

  • 通信中のURIが表示されない
  • 通信が任意のタイミングで発生する
  • 通信の有無が確認しにくい
  • JavaScriptが有効となっている

 すでに、各ブラウザのAjax実装である「XMLHttpRequest」で対策が講じられているものもありますが、その前に上記の特徴に潜むセキュリティ上のリスクを確認しておきたいと思います。

 通信中のURIが表示されない

 皆さんは、どうやってWebアプリケーションの正当性(正しいサイト・コンテンツであるかどうか)を見分けているでしょうか? 恐らくほとんどの方が、Webブラウザの「アドレス欄」に表示されるアドレス(URI)を信じ、判断していると思います。

 Ajaxの場合は、JavaScriptのプログラム内にアドレス情報が埋め込まれているため、単にアドレス欄を見ているだけでは、実際どのURIにアクセスしているかまでは正確に知ることができません。

 通信が任意のタイミングで発生する

 これまでのWebアプリケーションでは、例えば「リンク選択」「Submitボタンの押下」などのユーザー操作がトリガとなって画面遷移がスタートするため、サーバとの通信タイミングは、一目瞭然で非常にシンプルな形でした。

 しかし、Ajaxでは、ユーザーが一切操作しない場合であっても、JavaScriptによって通信が起動されることがあり、無意識のうちにサーバ通信が発生することも考えられます。

 通信の有無を確認しにくい

 これまでのWebアプリケーションでは、Webブラウザがサーバと通信し、データをダウンロード中である場合、「ステータスバーに通信状態を表示」したり「ロゴアイコンがアニメーション」したりするため、通信の有無をユーザーが意識しやすい形になっています。

 一方Ajaxでは、(Webブラウザの種別にもよりますが)ユーザーから通信状態が見えにくい(もしくは全く見えない)状態となります。

 JavaScriptが有効になっている

 これまでのWebアプリケーションでは、セキュリティ上の問題を発生するリスクが高まるという理由で、「JavaScript」は無効化することが推奨されてきていました。しかし、Ajaxの台頭によって「JavaScript」が復権を果たし、JavaScriptを有効とすることを求めるサイトも増えてきています。その裏側では、セキュリティ上のリスクにさらされている危険性があります。

 ここまでご説明した内容は、「このような問題があるからAjaxは怖い」と恐怖心をあおるのが目的ではなく、セキュリティ上で注意すべきポイントがどこにあるのかを確認するためのものです。以降で、セキュリティが低下する事例や対策状況などについてご紹介したいと思います。

1/4

 INDEX

Ajaxの特徴に潜むリスクをサンプルアプリで確認しよう
Page1<通常のWebアプリと異なるAjaxの特徴に潜むリスク/通信中のURIが表示されない/通信が任意のタイミングで発生する/通信の有無を確認しにくい/JavaScriptが有効になっている>
  Page2<セキュリティ低下のサンプル/クリップボードへのコピペ参照>
  Page3<マウス座標位置のトラッキング/マウスの動きを記録する>
  Page4<Ajaxのセキュリティ対策状況/SSLによる暗号通信/クロスドメインの制限/大事なのは危険性を知っておくこと>

Ajax解体新書 バックナンバー

ホワイトペーパーTechTargetジャパン

リッチクライアント & 帳票 フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  企業の仮想化に足りない“発想”とは?
仮想化運用管理のキモは意外なところに!

New!
  操作もマニュアルも分かりやすい!
ユーザー視点で開発されたPC管理ツール

New!
  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  セキュリティを知り尽くす上野氏が登壇!
@ITメールソリューションLive! in Tokyo

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  世界に通用するストレージの作り方とは?
製品に込めた思いを富士通の開発者に聞く

  OSSで手間も時間も、障害も減った――
「マピオンの事例」オープンソース活用法

  「ノートPCの持ち出し禁止」で大丈夫?
情報漏えいを防ぐ管理手法とインフラは?

  1日の処理を1秒に――MySQLの達人が語る
「コスト削減」できるチューニング

  ドキュメント作成を自動化して、SEの作業
効率を大幅アップ! Visio 2007の魅力

  急速に広がるHyper-Vでのサーバ仮想化
そのベストプラクティスをデルが解説

  @IT主催セミナーで語られた、「担当者に
求められるセキュリティ対策」をレポート

  @IT「Windows 7」 特設サイトオープン!
最新情報・移行ノウハウを公開しています