公開日:2007年6月28日
独立行政法人情報処理推進機構
セキュリティセンター
本ページの情報は2007年6月時点のものです。
記載の資料は資料公開当時のもので、現在は公開されていないものも含みます。
Webアプリケーションを一から企画・要件定義・設計する従来のソフトウェアの構成ではなく、他者の Web サービスを主要な部分に利用して開発する「マッシュアップ」の構成においては、想定される脅威の構図が変化している。
脅威の構図の変化に対応するセキュアプログラミングの論点が存在する。
近年、Web アプリケーションの開発プロセスに特徴的な変化が見受けられる。その要因として顕著なのはソフトウェア部品や機能が Web インタフェイスをもつサービスとして公開されるようになったことが挙げられ、これらを利用する Web サイトが増えている。
音楽 DJ の世界において複数の既存の楽曲を組み合わせて新たな楽曲を創造することが「マッシュアップ」と呼ばれていることになぞらえて、Web アプリケーションを組み合わせによって開発することも「マッシュアップ」と呼ばれるようになった。短期的も変化する業務要件の変化に応じてアプリケーション開発を行うために、「マッシュアップ」は広く行われるようになってきているようである。
ユーザに「マッシュアップ」されたコンテンツやサービスを提供するためのシステム構成方法には複数の方法がある。Web ブラウザ側の機能を利用する場合もあれば、Web サーバ側の機能を利用する場合もある。
「マッシュアップ」には「クライアント側マッシュアップ」と「サーバ側マッシュアップ」のふたつの形態がある。
サーバ等の名称として下記の用語を用いる。
マッシュアップの全体構成を企画する主催者が提供するWebサーバを「主催者サーバ」と呼ぶ。
ユーザによって意識的に直接アクセスされる。
マッシュアップの部分を構成する素材を提供するサーバを「素材サーバ」と呼ぶ。
「主催者サーバ」からユーザのブラウザにロードされるプログラムコードを「ホストコンテンツ」と呼ぶ。
「素材サーバ」から提供されるリソースを「ゲストリソース」と呼ぶ。
「ゲストリソース」が「ホストコンテンツ」によって最初に取り込まれる地点。
集約地点が「クライアント側」にあるか「サーバ側」にあるかによって、「クライアント側マッシュアップ」と「サーバ側マッシュアップ」に分かれる。
「同一源泉(Same Origin)」概念に照らして同一源泉内のサーバのリソースへのアクセスを「自源泉」へのアクセスと呼び、同一源泉の範囲外のサーバのリソースへのアクセスを「他源泉」へのアクセスと呼ぶ。
(「同一源泉(Same Origin)」概念については、後述する。)
「クライアント側マッシュアップ」は、ブラウザにロードされた JavaScript コードの中から主催者の異なる複数の Web サービス(異なる複数の「源泉(origin)」)を利用する形態のマッシュアップである。
「サーバ側マッシュアップ」は、ブラウザにロードされたコンテンツの出身元の Web サーバ上のプログラムが、主催者の異なる複数の Web サービスから集めたリソースを編集・統合した上でブラウザへ引き渡す形態のマッシュアップである。
マッシュアップは下記の技術の進歩と普及によって実装することが容易になった。
programmable web によると、マッシュアップ素材として最も多く使われているWebサービスの上位には、「Google Maps」、「Twitter」、「You Tube」、「Flickr」、「Amazon eCommerce」等が名前を連 ねている。これらは、マッシュアップの中に組み入れることのできる視覚的要素、テキスト、決済機能等を提供するものである。
上記のWebサービスが多用されている理由のひとつには、支持者を多数もつWebサイトが提供しているWebサービスである点が挙げられる。これらポータルのサイトの周囲には、Webサービスを通じてそのサイトから情報を分けてもらう複数のマッシュアップサイトが付随し、ある種の「共生関係」が形成される。
これらポータルのサイトのWebサービスは、数年前から存在しており、今後も比較的長期にわたって存続するものもあろう。一方、マッシュアップサイトの方は短い寿命で終わる可能性が高い。既存の Webサービスを組み入れる形をとり、短期間かつ低コストで立ち上げることができるのが、マッシュアップサイトである。しかし、立ち上げが早いからこそ、目的に合わなくなればすぐに捨てて別のマッシュアップを構成することになる。
基礎的な知識を確認しつつマッシュアップにおけるセキュアプログラミングを学ぶために、下記の「マッシュアップセミナー」の資料を活用していただきたい。
マッシュアップにおけるセキュアプログラミングの考慮事項を「マッシュアップ」の章において述べる。