【3/18〜】Amazon、VMwareが語る『クラウドの未来』 スラッシュドット    はてなブックマーク  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-
  おばかアプリ選手権、第4弾開催中!!
ムダにカッコよくてくだらない作品求ム!

  社内ファイルサーバを“クラウド”に統合
VPN直結「クラウド型ストレージ」を紹介

  Twitterのアカウントはなぜ突破された?
メールによる新手の攻撃手法とその対策

  もう仮想化のお試しフェイズは終わりだ!
Hyper-V 2.0が基幹システムも仮想化

  美人!? まあまあ? 気になる いやし系!!
PV急増で「美人時計」がとった手段とは?

  クライアント企業から求められる人材
⇒IT技術と経営戦略を併せ持つ「戦略家」

  .NET編集長が実践する「技術情報検索術」
サンプル・コードを簡単に探す“技”は?

  業務効率と情報セキュリティ対策を両立!
手間なく確実に機密情報を守る方法とは?

  直属上司が海外にいるのエンジニアに見る
【実例】場所に捉われないワークスタイル

  「仮想化工房」のマイスターが選んだのは
VMware、Hyper-V、そしてVirtageだった!

  進化を続ける富士通ストレージETERNUS DX
製品開発者の自信を裏付けるものとは何か

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

  【CTC事例】約30の基幹システムを統合!
膨大なバッジジョブを制御した方法は?

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

  その数、なんと400台以上! グループ内
サーバの「統合管理」によるメリットは?