第8章 マッシュアップ
Webコンテンツの源泉概念
同一源泉の判定基準
ブラウザには、現在表示しているコンテンツ中の JavaScript から、そのコンテンツをロードしてきたところ以外の Web サイトへは HTTP リクエストを送信させない制限がある。これを「同一源泉ポリシー (same origin policy)」と呼ぶ。ちなみに Webサイト上のコンテンツには、動的に生成されるものもあれば、静的なものもある。
ロードもと以外の Webサイトへアクセスする「他源泉リクエスト(cross origin request)」を許すと、攻撃者にとっての自由度が大きくなり、ブラウザのみならずサーバもセキュリティ侵害を受けるリスクが高まる。
クライアント側マッシュアップの要求に応えるため、最近のブラウザは「同一源泉ポリシー」をある程度緩めるようになってきた。ただし、それらにおいても源泉の同一性を判別し、源泉が異なる場合には一定の歯止めをかけるようになっている。
Webコンテンツの源泉が同一であるか否かを判定する基準は、セキュリティ確保の上で重要なポイントとなっており、「Webコンテンツの源泉概念(Web Origin Concept)」として規定されている。
これは、W3C における HTML5 標準の策定に由来する。
- RFC 6454, "Web Origin Concept"(2011年12月)
同一源泉ポリシーからの乖離
「同一源泉ポリシー」は、「クライアント側マッシュアップ」と「サーバ側マッシュアップ」の間において、ちょうど概念的な境界となる。
「同一源泉ポリシー」から逸脱して他の源泉からのリソースをマッシュアップすると、セキュリティリスクが高まることになる。詳しくは「クライアント側マッシュアップ」において述べたとおりである。起こり得るセキュリティ侵害には、素材サーバからの侵害と、素材サーバに対する侵害の双方向がある。

図8-17: 同一源泉ポリシー
一方、「サーバ側マッシュアップ」のソリューションは、ブラウザが従来堅持してきた「同一源泉ポリシー」を超えないものである。