同一生成元ポリシー同一生成元ポリシー(どういつせいせいげんポリシー、英: Same-Origin Policy)とは、1995年Netscape社によってJavaScriptと同時にウェブブラウザに導入されたセキュリティ上の考え方で、コンテンツがブラウザに来る源泉(origin)に基づいて整理して、外部からの干渉を防ごうとする。 同一源泉ポリシー、同一オリジンポリシーとも表記される。 厳密には異なるがクロスドメイン、クロスサイトの制限と表記されることもある。 Origin判定ルールOriginはオリジン、源泉とも表記され、以下の3つを一組としてすべて一致するとき同一とみなす。 表題に反して、コンテンツは動的に生成されるとは限らない[1]。 例えば、次のものは同一のところから来たと扱われる。
次のものは、お互いに別のところから来たと扱われる。
同一でないoriginに対する制限とその回避策異なる源泉から来たコンテンツについて、ブラウザ(正確にはユーザーエージェント)はセキュリティ上の干渉を阻止するため、さまざまな制限を行う。以下は一例である。
この制限がない場合、例えばログインしないとみることのできない情報(Wikipediaのウォッチリストや、Webメールなど)のあるサイトにログインしているとき、ほかの生成元のサイトからそれを取得されるなどの危険が生じる。 画像やスクリプト、CSS、Flashなどのオブジェクトの埋め込みでは制限の内容に違いがあったり、制限されない場合がある。これを利用して、ほかの生成元と通信を行う代表的な手段がJSONPである。 セキュリティ上のリスクを理解したうえであれば、HTTPヘッダーでの指定やdocument.domainの変更などの特定の方法で許可をすることによって制限を緩和することができる。en:Cross-Origin Resource Sharing(CORS)と呼ばれ、一部の仕様はHTML5によって定められており、古いブラウザは非対応の場合もある。 また、このポリシーはブラウザの実装によってデータURIスキームの扱いなどに差異がある。 関連項目脚注
参考文献
外部リンク |