同一オリジンポリシーとは何か
同一オリジンポリシーとは、ブラウザが「同じ出どころのページ同士でしか、互いの中身に自由にアクセスさせない」という安全のための基本ルールです。出どころのことをオリジンと呼びます。
このルールがあるおかげで、いま開いているあるサイトが、別のタブで開いている別サイトの内容を勝手に読み取ったり操作したりできません。もしこれが無ければ、表示中のページが裏で他サービスの情報を盗み見る、といったことが容易になってしまいます。
つまり同一オリジンポリシーは、サイト同士を互いに隔離して利用者を守る、ブラウザの安全設計の根幹です。
オリジンを構成する三つの要素
オリジンは三つの要素で決まります。通信方法を示すスキーム、サイトの住所にあたるホスト、そして通信の出入口を示すポートです。この三つがすべて一致して初めて同じオリジンとみなされます。
スキームは、暗号化されたhttpsか、そうでないhttpかといった通信方法の種類です。ホストは、giga-site.comのようなドメイン名にあたる部分です。ポートは通常は意識しませんが、内部的に通信の窓口を区別する番号です。
このうちひとつでも違えば別のオリジンと判定されます。住所が同じでも、入口や通信方法が違えば別の出どころとして扱う、という厳密さがこのルールの特徴です。
実務ではどこで関係する?
同一オリジンポリシーは言葉の意味だけ覚えても、HTML共有の判断にはつながりません。実務では「表示に関係する話か」「検索に関係する話か」「アクセス制限に関係する話か」を分けて考えると整理しやすくなります。
同一オリジンポリシーについて迷ったら、相手が安全に開けるか、検索に出してよいか、ブラウザや環境差で壊れないかを順番に確認します。用語理解は、その判断を早くするための道具として使います。手順が決まったら、HTML/ZIPをアップロードして共有URLを発行し、相手に確認してほしい観点と期限を添えて送ります。
- 表示の話: HTML/CSS/JS、パス、ブラウザ互換性を確認する
- 検索の話: noindex、canonical、sitemap、robots.txtの役割を分ける
- 制限の話: URL共有、パスワード、メール認証、会社ドメイン認証を混同しない
- 運用の話: 期限、差し替え、削除、共有メッセージまで決める
同じか違うかの具体例
例えば、同じホストでもhttpとhttpsでは通信方法が異なるため、別のオリジンになります。暗号化の有無で隔離されるのは、安全度の違うものを混同しないための配慮です。
また、見た目が近いドメインでも、ホスト名が少しでも異なれば別オリジンです。サブドメインが違う場合も原則として別の出どころとして扱われます。一方、同じスキーム・同じホスト・同じポートであれば、ページのパスが違っても同じオリジンです。
このように、同じか違うかは三要素の一致で機械的に判定されます。直感的な「同じサイトっぽい」とは必ずしも一致しない点に注意が必要です。
オリジンを見分ける手順
二つのページが同じオリジンかを自分で確かめるには、アドレス欄を要素ごとに見比べます。次の順で確認すると判定できます。
- 先頭のhttpsかhttpかという通信方法が一致するか見る
- ドメイン名にあたるホスト部分が完全に一致するか見る
- サブドメインの違いが無いか確認する
- 特殊な場合は通信の窓口を示すポート番号が一致するか確認する
安全ルールと例外の仕組み
同一オリジンポリシーは厳格ですが、現実には別オリジンのデータを安全に読み込みたい場面もあります。そのための例外的な許可の取り決めが、別ドメイン間のやり取りを定めるCORSです。提供側が明示的に許可した範囲でのみ、隔離の壁を越えられます。
このルールを理解しておくと、サイトが別サービスのデータを読めない理由や、なぜ提供側の許可が必要なのかが腑に落ちます。隔離が基本で、許可は例外、という関係です。
資料を関係者だけに見せたい場面では、こうしたブラウザの隔離だけに頼るのではなく、閲覧の入口で本人確認をする方が確実です。ギガサイト便は〇〇.giga-site.com形式の専用サブドメインで一時公開でき、パスワードやメール認証、会社ドメイン認証を選んで閲覧者を確かめられます。
よくある質問
オリジンとドメインは同じ意味ですか
違います。ドメインはオリジンを構成する要素のひとつ(ホスト)にあたります。オリジンは通信方法を示すスキーム、ホスト、通信の窓口を示すポートの三つがそろって決まる、より厳密な概念です。
httpとhttpsは同じオリジンですか
いいえ、別オリジンです。先頭のスキームが異なると別の出どころとみなされます。ホストが同じでも、暗号化の有無が違えば同一オリジンとは扱われません。
サブドメインが違うと別オリジンですか
原則として別オリジンとして扱われます。ホスト名が少しでも異なれば違う出どころと判定されるため、サブドメインの違いも別オリジンになります。
同一オリジンポリシーとCORSの関係は何ですか
同一オリジンポリシーが基本の隔離ルールで、CORSはその例外として別オリジンのデータを安全に読み込むための許可の取り決めです。提供側が許可した範囲でのみ、隔離の壁を越えられます。
実務ではどこで関係する?はHTML共有で必ず理解しておく必要がありますか?
細かな仕様を暗記する必要はありません。ただし、検索に出るか、閲覧者を制限できるか、表示が崩れないかに関わる用語は、共有前の判断材料として押さえておくと安全です。