同一生成元ポリシー

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

同一生成元ポリシー(どういつせいせいげんポリシー、: Same-Oigin Policy)とは、ウェブブラウザにおけるセキュリティ上の制限である。同一源泉ポリシー同一オリジンポリシーとも表記される。 厳密には異なるがクロスドメイン、クロスサイトの制限と表記されている場合もある。

生成元[編集]

生成元(Origin)はオリジン源泉とも表記され、以下の3つがすべて同一のもとを同じ生成元とみなす。

例えば以下は同じ生成元である。

  • http://example.com/
  • http://example.com:80/
  • http://example.com/path/file

以下はお互いに異なる生成元を持つ。

  • http://example.com/
  • http://example.com:1234/
  • http://www.example.com/
  • https://example.com/
  • http://example.org/
  • http://wikipedia.org

同一生成元ポリシー[編集]

自分と異なる生成元に対し、ブラウザ(正確にはユーザーエージェント)はセキュリティ上のリスクを緩和するため、さまざまな制限を行う。以下は一例である。

  • XMLHttpRequestによる取得の禁止
  • スクリプトを使って別の生成元であるiframeやwindowに対する操作の制限(iframe.contentWindow、window.parent、window.open、window.openerなど)
  • Canvasへの一部の操作の制限

この制限がない場合、例えばログインしないとみることのできない情報(Wikipediaのウォッチリストや、Webメールなど)のあるサイトにログインしているとき、ほかの生成元のサイトからそれを取得されるなどの危険が生じる。

画像やスクリプト、CSSFlashなどのオブジェクトの埋め込みでは制限の内容に違いがあったり、制限されない場合がある。これを利用して、ほかの生成元と通信を行う代表的な手段がJSONPである。 セキュリティ上のリスクを理解したうえであれば、HTTPヘッダーでの指定やdocument.domainの変更などの特定の方法で許可をすることにより同一生成元ポリシーによる制限を緩和することができる。en:Cross-Origin Resource Sharing(CORS)と呼ばれ、一部の仕様はHTML5によって定められており、古いブラウザは非対応の場合もある

また、このポリシーはブラウザの実装によってデータURIスキームの扱いなどに差異がある。

参考文献[編集]

関連項目[編集]