メインコンテンツまでスキップ

1. はじめに (Introduction)

ユーザーエージェント (User Agent) は、多数の作成者によって作成されたコンテンツとやり取りします。これらの作成者の多くは善意ですが、一部の作成者は悪意を持っている可能性があります。ユーザーエージェントが処理するコンテンツに基づいてアクションを実行する限り、ユーザーエージェントの実装者は、悪意のある作成者が他のコンテンツやサーバーの機密性や完全性を破壊する能力を制限したいと考えるかもしれません。

例えば、さまざまなサーバーから取得したHTMLコンテンツをレンダリングするHTTPユーザーエージェントを考えてみましょう。ユーザーエージェントがこれらのドキュメントに含まれるスクリプトを実行する場合、ユーザーエージェントの実装者は、悪意のあるサーバーから取得したスクリプトが、例えばファイアウォールの内側にある可能性のある正直なサーバーに保存されているドキュメントを読み取ることを防ぎたいと考えるかもしれません。

従来、ユーザーエージェントは、その「オリジン (Origin)」に従ってコンテンツを分割してきました。より具体的には、ユーザーエージェントは、あるオリジンから取得したコンテンツが、そのオリジンから取得した他のコンテンツと自由にやり取りすることを許可しますが、ユーザーエージェントは、そのコンテンツが別のオリジンからのコンテンツとどのようにやり取りできるかを制限します。

本文書は、いわゆる同一オリジンポリシー (Same-Origin Policy) の背後にある原則と、オリジンを比較およびシリアル化する「細部」について説明します。本文書は、同一オリジンポリシーのすべての側面を説明するものではありません。詳細はHTML [HTML]やWebSockets [RFC6455]などの他の仕様に委ねられています。これは、詳細がアプリケーション固有であることが多いためです。