同一生成元ポリシーによって、ある生成元から読み込まれた文書やスクリプトが、異なる生成元からの文書のプロパティを取得したり設定したりするのを防ぎます。このポリシーは Netscape Navigator 2.0 までさかのぼります。
もしプロトコル、(与えられていれば) ポート、及びホストが両方のページで同じならば、Mozilla は二つのページが同一生成元を持っていると見なします。説明するために、以下の表では URL https://store.company.com/dir/page.html との生成元の比較の例を挙げています。
URL | 結果 | 理由 |
---|---|---|
https://store.company.com/dir2/other.html |
成功 | |
https://store.company.com/dir/inner/another.html |
成功 | |
https://store.company.com/secure.html |
失敗 | 異なるプロトコル |
https://store.company.com:81/dir/etc.html |
失敗 | 異なるポート |
https://news.company.com/dir/other.html |
失敗 | 異なるホスト |
同一生成元ポリシーには一つの例外があります。スクリプトは document.domain
の値を現在のドメインのサフィックスに設定できます。もしスクリプトによってそのように設定されたら、より短いドメインは次の生成元のチェックのために使われます。例えば、https://store.company.com/dir/other.html
にある文書内のスクリプトが以下の命令文を実行したと想定します:
document.domain = "company.com";
この命令文の実行後、ページは https://company.com/dir/page.html
で生成元のチェックを通るでしょう。しかし、同じ理由で、company.com
は document.domain
を othercompany.com
に設定することはできません。
Original Document Information
- Author(s): Jesse Ruderman