同一オリジンポリシーとは?初心者が押さえる基本と実例共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
同一オリジンポリシーとは?初心者が押さえる基本と実例共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)


同一オリジンポリシーとは?

ウェブを安全に使うための基本的なルールが、同一オリジンポリシーです。ここでいう「オリジン(Origin)」は、スキーム・ホスト・ポートの三つが組み合わさったものを指します。つまり、同じスキーム・ホスト・ポートを持つページ同士なら、データのやり取りが許される場合が多く、異なる場合は制限されます。

なぜ必要なのか

もし別のサイトが勝手にあなたのページからデータを読んだり、書き換えたりできたら、人情報の漏えいやセッションの乗っ取りなど大きな問題になります。同一オリジンポリシーは、こうした悪意のある行為を防ぐための基本的なセキュリティの柱です。

Originの定義と判定の仕方

Origin(オリジン)は次の3要素で決まります。スキームホストポートです。以下の表を見て整理しましょう。

<th>要素
説明
スキーム例: http, https
ホスト例: example.com, sub.example.org
ポートhttp は通常 80、https は通常 443。指定がなければデフォルトが使われます

同じ

スキーム・ホスト・ポートのすべてが同じ場合にだけ、同一オリジンと判断されます。たとえば <span>http://example.com と http://example.com は同じOriginです。一方、https://example.com は別のOriginになります。また、http://example.comhttp://example.org はホストが違うため別Originです。

実例と影響

同一オリジンポリシーの制限により、あるページが別のオリジンのデータへ直接アクセスすることは基本的にできません。これを回避するために、正しい手段としてCORS(Cross-Origin Resource Sharing)という仕組みが用意されています。

クロスオリジンと CORS のしくみ

クロスオリジンとは、別のオリジン間でデータをやりとりすることを指します。ブラウザは通常、クロスオリジンのリクエストをブロックしますが、サーバー側が適切なヘッダーを返すことで許可できます。これを CORS(Cross-Origin Resource Sharing)と呼びます。具体的には、サーバーが Access-Control-Allow-Origin ヘッダーを返すことで、特定のオリジンからのリクエストを許可します。なお、ここではコードの記述方法には触れず、概念として理解しましょう。

実務でのポイントと学習のコツ

日常的なウェブ開発では、同一オリジンポリシーを前提に、API 連携を行う場合はサーバー側で CORS を適切に設定します。また、異なるオリジン間の安全な通信には postMessage などの仕組みを用いる方法もあります。初心者のうちは、まず「Origin が同じときはどうなるか」「異なるときは何が制限されるか」を意識して、簡単な例題を自分で作ってみると理解が深まります。

まとめ

同一オリジンポリシーは、ウェブを安全に保つための基本ルールです。Origin を正しく理解することで、どのようなケースでデータが守られ、どのケースで許可されるのかを見分けられるようになります。CORS はその「許可をどう与えるか」という仕組みであり、サーバーとクライアントが協力して安全なデータ共有を実現します。


同一オリジンポリシーの同意語

同一オリジンポリシー
ウェブブラウザが、異なるオリジン間でのデータの読み取りや操作を原則として制限するセキュリティ規則。オリジンはスキーム(http/https)、ホスト名、ポート番号の組み合わせで決まる。
同一起源ポリシー
同一オリジンポリシーとほぼ同義の表現。日本語で“オリジン”を“起源”と訳す場合の別表現。
同一オリジン原則
同一オリジンポリシーと同じ思想を表す表現。データは同じ起源のリソース間でのみやり取りできる、という基本原理。
同一ソースポリシー
“ソース”はOriginとほぼ同義。出所が同じリソース間でのみ安全にデータを共有する前提を示す表現として使われることがある。
同一出所ポリシー
Originの日本語訳である“出所”を用いた表現。意味は同じく、異なる出所間のアクセスを制限するポリシー。
SOP
Same-Origin Policyの略称。技術文書や解説で頻繁に使われる略語。
Same-Origin Policy
英語表記の同一オリジンポリシー。国際的な文献やコードコメントで使われる正式名称。

同一オリジンポリシーの対義語・反対語

クロスオリジンアクセス許可
同一オリジン以外のオリジンからのリソースアクセスを許す仕組み。例: サーバがAccess-Control-Allow-Originヘッダを返して別オリジンのリクエストを受け入れる。
CORS
Cross-Origin Resource Sharingの略。サーバが特定のオリジンからのリクエストを許可することで、別のオリジンからの資源取得を可能にする仕組み。
オリジン間リソース共有
異なるオリジン間でリソースを共有する考え方。CORSと同義語として使われることが多い。
異なるオリジンからのアクセスを許可するポリシー
別のオリジンのウェブページやスクリプトからデータや機能へアクセスを許可する方針。
同一オリジンポリシー緩和型
同一オリジンポリシーをそのまま厳格には適用せず、緩和して跨るアクセスを認める運用形。
クロスオリジンAJAX許可
XMLHttpRequestなどのAJAXで別オリジンのデータを取得できるようにする設定・仕組み。
クロスオリジンAPI利用
別オリジンのAPIをウェブページから利用可能にする形。
オリジン間通信許可
window.postMessageなどを使い、異なるオリジン間での通信を許す仕組み。
脱同一オリジンポリシー
同一オリジンポリシーを撤廃し、完全に自由なオリジン間通信を想定する考え方。
オープンオリジンアクセス
オリジンを問わず自由にアクセスを許す開放的な状態。
クロスドメインポリシー
別ドメイン間のアクセス方針。厳密にはSOPとは別の古いポリシー概念だが、対義語として使われることがある。
オリジン間データ共有ポリシー
異なるオリジン間でデータを共有することを前提としたポリシーの総称。

同一オリジンポリシーの共起語

CORS
異なるオリジン間でのリソース共有を許可する仕組み。サーバが特定のオリジンからのアクセスを受け入れるかどうかを制御します。
クロスオリジンリソースシェアリング
CORSの正式名称。別オリジンのウェブページがリソースを取得できるかを宣言・制御する仕組みです。
Origin
リクエストの起点となるオリジン。URLのスキーム・ホスト名・ポート番号の組み合わせです。
Originヘッダ
リクエスト時にブラウザが送るOrigin情報。どのオリジンから来たのかを示します。
Access-Control-Allow-Origin
サーバが許可するオリジンを示すレスポンスヘッダ。ワイルドカード(*)や特定のオリジンを指定します。
プリフライトリクエスト
実際のリクエストを送る前にサーバに許可を確認する事前問い合わせ。通常はOPTIONSメソッドで行われます。
同一オリジンポリシー
ブラウザが別オリジンからのリソース取得を制限する基本ルール。セキュリティの核となるポリシーです。
同一オリジン制約
同一オリジンポリシーと同義・同義語として使われる表現。
サーバ設定
CORSを適用するためにサーバ側で許可するオリジンや認証情報の設定を行います。
Content-Security-Policy
ページがロードするリソースの出所を制限するヘッダ。XSS対策などの追加セキュリティ手段として使われます。
Access-Control-Allow-Credentials
認証情報( cookies やHTTP認証情報)をクロスオリジンリクエストで送信して良いかを示すレスポンスヘッダ。
Access-Control-Request-Headers
プリフライトリクエストでブラウザが実際のリクエストで許可を求めるヘッダ名を知らせます。
Fetch API
モダンなウェブAPIで、クロスオリジンリクエストを行う代表的な方法。
XMLHttpRequest (XHR)
従来のAJAX通信の方法。同一オリジンポリシーの制限を受けることがあります。
サードパーティリソース
他オリジンから読み込むスクリプト・画像・フォントなど。CORS設定の対象になることが多い。

同一オリジンポリシーの関連用語

同一オリジンポリシー
ウェブブラウザが、異なるオリジン間でのデータの読み書きを基本的に制限するセキュリティの基本ルール。同じオリジン同士なら自由にやり取りできる一方、異なるオリジン間のアクセスは制限される。
オリジン
URL のスキーム・ホスト・ポートの組み合わせのこと。同一オリジンポリシーはこのオリジンを基準に動作する。
クロスオリジン
異なるオリジン間でのリソースの読み込みや通信を指す。
例: 別のサイトから API を呼ぶ場合など。
クロスオリジンリソースシェアリング (CORS)
サーバー側が特定のオリジンからのリソースアクセスを許可するための仕組み。ブラウザは許可されたオリジン以外からのリクエストをブロックする。
Access-Control-Allow-Origin
CORS のレスポンスヘッダで、アクセスを許可するオリジンを指定する。ワイルドカード (*) も使われるがセキュリティ上の制約がある。
Access-Control-Allow-Credentials
クレデンシャル( cookies や Authorization ヘッダなど)を含むリクエストの許可を示す CORS ヘッダ。
Access-Control-Allow-Methods
プリフライトリクエストに対して、許可される HTTP メソッドを列挙する CORS ヘッダ。
Access-Control-Allow-Headers
プリフライトリクエストに対して、許可されるカスタムヘッダを列挙する CORS ヘッダ。
プリフライトリクエスト
クロスオリジンの実リクエストを送る前に、サーバーが許可を出すかを確認するための HTTP OPTIONS リクエスト。
Vary ヘッダ
キャッシュの挙動を制御するヘッダ。Origin を含めると、オリジンごとにキャッシュを分けるよう指示することがある。
クレデンシャル付きリクエスト
クッキーや認証情報をリクエストと一緒に送るリクエストのこと。CORS では特別な設定が必要。
JSONP
古いクロスオリジン取得手法。script タグを用い、コールバック関数でデータを返すが、セキュリティ上のリスクが高い。
サーバーサイドプロキシ
同一オリジン制約を回避するため、自分のサーバー経由で他オリジンのデータを取得して返す方法。
postMessage
異なるオリジン間で安全にメッセージを送受信する Web API。ウィンドウ間通信に用いられる。
Content Security Policy (CSP)
ページが許可するコンテンツの出所・種別をポリシーで厳しく制御するセキュリティ機能。
X-Frame-Options
自分のページが他サイトの iframe に表示されるのを制御するセキュリティヘッダ。
SameSite Cookies
クッキーの送信条件を同一サイトからのリクエストに限定する設定。CSRF 対策に有効。
CSRF対策
別のサイトからの偽装リクエストを防ぐ仕組み。トークンの検証や SameSite などが用いられる。
IFRAMEとSandbox
iframe の sandbox 属性で外部コンテンツの実行権限を制限し、同一オリジンポリシーを補完する。
Origin ヘッダ
HTTP リクエストに含まれる Origin 情報を伝える header。サーバーはこれを基にアクセスを判断することがある。
WebSocket Origin チェック
WebSocket のハンドシェーク時に Origin を検証して、許可されたオリジン以外からの接続を遮断する仕組み。
CORB (Cross-Origin Read Blocking)
ブラウザがクロスオリジンのデータを不適切に読み取られないようにする保護機能。

同一オリジンポリシーのおすすめ参考サイト


インターネット・コンピュータの人気記事

awstatsとは?初心者でもわかる使い方と基本解説共起語・同意語・対義語も併せて解説!
15385viws
bing・とは?初心者のための基本ガイド:検索エンジンの仕組みと使い方共起語・同意語・対義語も併せて解説!
2474viws
着信転送とは?初心者向けガイドで分かる使い方と設定のコツ共起語・同意語・対義語も併せて解説!
1109viws
差し込み印刷・とは?初心者でもすぐわかる使い方と仕組みガイド共起語・同意語・対義語も併せて解説!
1088viws
com端子・とは?初心者にも分かる基礎ガイド|シリアルポートの使い方と歴史を解説共起語・同意語・対義語も併せて解説!
979viws
充電アダプターとは何かを徹底解説|初心者でも分かる基本と選び方のコツ共起語・同意語・対義語も併せて解説!
930viws
7zファイル・とは?初心者でもわかる使い方と特徴を解説共起語・同意語・対義語も併せて解説!
891viws
全角文字とは?初心者向け解説|全角と半角の違いをやさしく学ぶ共起語・同意語・対義語も併せて解説!
879viws
リマインドメールとは?初心者にもわかる基本ガイドと使い方のコツ共起語・同意語・対義語も併せて解説!
822viws
pinロックとは?初心者が知っておくべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
821viws
none とは?初心者にもやさしく解説する意味と使い方ガイド共起語・同意語・対義語も併せて解説!
749viws
16進数カラーコード・とは?初心者でもつまずかない基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
738viws
xlsmとは?初心者でも分かるExcelのマクロ付きファイルの基本共起語・同意語・対義語も併せて解説!
641viws
asp・とは?初心者向けに徹底解説する基本と使い方ガイド共起語・同意語・対義語も併せて解説!
640viws
ローカルポート・とは?初心者にも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
637viws
countifとは?初心者でもすぐ使える基本と応用ガイド共起語・同意語・対義語も併せて解説!
571viws
ワンタイムコード・とは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
559viws
csvダウンロードとは?初心者が今すぐ使える基本ガイド共起語・同意語・対義語も併せて解説!
532viws
sha256とは?初心者が知るべき暗号ハッシュの基礎と使い道共起語・同意語・対義語も併せて解説!
531viws
googleドキュメントとは?初心者が今日から使いこなす基本ガイド共起語・同意語・対義語も併せて解説!
496viws

新着記事

インターネット・コンピュータの関連記事