セキュリティセンターTOP > セキュアプログラミング講座 > Webアプリケーション編 > 総論 > マッシュアップにおけるセキュアプログラミング

第1章 総論
マッシュアップにおけるセキュアプログラミング

Webアプリケーションを一から企画・要件定義・設計する従来のソフトウェアの構成ではなく、他者の Web サービスを主要な部分に利用して開発する「マッシュアップ」の構成においては、想定される脅威の構図が変化している。
脅威の構図の変化に対応するセキュアプログラミングの論点が存在する。

マッシュアップとは

近年、Web アプリケーションの開発プロセスに特徴的な変化が見受けられる。その要因として顕著なのはソフトウェア部品や機能が Web インタフェイスをもつサービスとして公開されるようになったことが挙げられ、これらを利用する Web サイトが増えている。

音楽 DJ の世界において複数の既存の楽曲を組み合わせて新たな楽曲を創造することが「マッシュアップ」と呼ばれていることになぞらえて、Web アプリケーションを組み合わせによって開発することも「マッシュアップ」と呼ばれるようになった。短期的も変化する業務要件の変化に応じてアプリケーション開発を行うために、「マッシュアップ」は広く行われるようになってきているようである。

ユーザに「マッシュアップ」されたコンテンツやサービスを提供するためのシステム構成方法には複数の方法がある。Web ブラウザ側の機能を利用する場合もあれば、Web サーバ側の機能を利用する場合もある。

用語

「マッシュアップ」には「クライアント側マッシュアップ」と「サーバ側マッシュアップ」のふたつの形態がある。

「クライアントサイドマッシュアップ」と「サーバサイドマッシュアップ」
図1-8: 「クライアント側ドマッシュアップ」と「サーバ側マッシュアップ」

サーバ等の名称として下記の用語を用いる。

「主催者サーバ」と「素材サーバ」

マッシュアップの全体構成を企画する主催者が提供するWebサーバを「主催者サーバ」と呼ぶ。
ユーザによって意識的に直接アクセスされる。

マッシュアップの部分を構成する素材を提供するサーバを「素材サーバ」と呼ぶ。

「ホストコンテンツ」と「ゲストリソース」

「主催者サーバ」からユーザのブラウザにロードされるプログラムコードを「ホストコンテンツ」と呼ぶ。

「素材サーバ」から提供されるリソースを「ゲストリソース」と呼ぶ。

「集約地点」

「ゲストリソース」が「ホストコンテンツ」によって最初に取り込まれる地点。
集約地点が「クライアント側」にあるか「サーバ側」にあるかによって、「クライアント側マッシュアップ」と「サーバ側マッシュアップ」に分かれる。

「自源泉」と「他源泉」 (図には明示していない)

「同一源泉(Same Origin)」概念に照らして同一源泉内のサーバのリソースへのアクセスを「自源泉」へのアクセスと呼び、同一源泉の範囲外のサーバのリソースへのアクセスを「他源泉」へのアクセスと呼ぶ。
(「同一源泉(Same Origin)」概念については、後述する。)

「クライアント側マッシュアップ」は、ブラウザにロードされた JavaScript コードの中から主催者の異なる複数の Web サービス(異なる複数の「源泉(origin)」)を利用する形態のマッシュアップである。

「サーバ側マッシュアップ」は、ブラウザにロードされたコンテンツの出身元の Web サーバ上のプログラムが、主催者の異なる複数の Web サービスから集めたリソースを編集・統合した上でブラウザへ引き渡す形態のマッシュアップである。

マッシュアップを容易にした技術

マッシュアップは下記の技術の進歩と普及によって実装することが容易になった。

(1) JavaScriptプログラミング環境の進歩

(2)「Webサービス」技術の普及

マッシュアップとWebサービスの寿命

programmable web によると、マッシュアップ素材として最も多く使われているWebサービスの上位には、「Google Maps」、「Twitter」、「You Tube」、「Flickr」、「Amazon eCommerce」等が名前を連 ねている。これらは、マッシュアップの中に組み入れることのできる視覚的要素、テキスト、決済機能等を提供するものである。

上記の Webサービスが多用されている理由のひとつには、支持者を 多数もつWebサイトが提供している Webサービスである点が挙げられる。これらポータルのサイトの周囲には、Webサービスを通じてそ のサイトから情報を分けてもらう複数のマッシュアップサイトが付 随し、ある種の「共生関係」が形成される。

これらポータルのサイトの Webサービスは、数年前から存在しており、今後も比較的長期にわたって存続するものもあろう。一方、マッシュアップサイトの方は短い寿命で終わる可能性が高い。既存の Webサービスを組み入れる形をとり、短期間かつ低コストで立 ち上げることができるのが、マッシュアップサイトである。しかし、立ち上げが早いからこそ、目的に合わなくなればすぐに捨てて別のマッシュアップを構成することになる。

マッシュアップにおける脅威と対策

基礎的な知識を確認しつつマッシュアップにおけるセキュアプログラミングを学ぶために、下記の「マッシュアップセミナー」の資料を活用していただきたい。:

マッシュアップにおけるセキュアプログラミングの考慮事項を「マッシュアップ」の章において述べる。

マッシュアップ

  • WebサービスとマッシュアップAPI
  • クライアント側マッシュアップ
  • #1 クライアント側マッシュアップをめぐる脅威
    #2 悪意のAPIサイトからの脅威
    #3 リクエスト強要攻撃による善意のAPIへの侵害
    #4 対策に利用できる技術
  • サーバ側マッシュアップ
  • マッシュアップとJavaScript
  • セキュリティトークンとOAuth 2.0