🔐

同一オリジンポリシーについて

2021/10/22に公開

定義

JSなどのクライアントスクリプトからサイトをまたがったアクセスを禁止するセキュリティ上の制限のことをいいます。たとえばiframeを使ってiframeの内側のHTMLを閲覧することを制限することができます。この制限をすることでパスワードなどの秘密情報の取得をさせないようにします。

同一オリジンである条件

  • URLのホスト(FQDN; Fully Qualified Domain Name)が一致していること
  • スキーム(プロトコル)が一致していること
  • ポート番号が一致していること

http://store.company.com/dir/page.html に対して下記の例で同一オリジンであるか確認してい
きます。(⭕️が同一オリジン)

ここで、"http://store.company.com/dir/page.html"は
ホストは"store.company.com"
スキームはhttp
ポート番号は80[1]
だということがわかります。

URL 結果 理由
http://store.company.com/dir2/other.html ⭕️
http://store.company.com/dir/inner/another.html ⭕️
https://store.company.com/page.html プロトコルが異なる
http://store.company.com:81/dir/page.html ポート番号が異なる
http://news.company.com/dir/page.html ホストが異なる
CORS(Cross-Origin Resource Sharing)について

同一オリジンポリシーが守られていなくても、サイト間で通信するときに相手側の許可があれば同一オリジンでなくても通信ができる仕様のことをCORSといいます。
本では、XMLHttpRequestのケースで説明されてます。

参考

同一オリジンポリシー(MDN)
体系的に学ぶ 安全なWebアプリケーションの作り方 第2版

脚注
  1. ポート番号の80は省略されます ↩︎

GitHubで編集を提案

Discussion