見出し画像

CORS(コース)の整理 CROSかと思ってた・・・ クロスオリジンとクロスドメインの違い

オリジン(情報元)が交差(クロス)するからクロスオリジン、対義語はセームオリジン

クロスオリジンリソース共有(CORS:コース)は、Web ページ上の制限されたリソースを、最初のリソースが提供されたドメイン外の別のドメインから要求できるようにする仕組みです。
Web ページには、クロスオリジンの画像、スタイルシート、スクリプト、iframe、動画を自由に埋め込むことができます。特定の「クロスドメイン」要求、特に Ajax 要求は、同一生成元セキュリティポリシーによってデフォルトで禁止されています。CORS は、ブラウザとサーバーが相互に作用して、クロスオリジンリクエストを許可しても安全かどうかを判断する方法を定義しています 。
CORS の仕様は、WHATWG の Fetch Living Standard の一部として含まれています。この仕様では、CORS が現在どのようにブラウザに実装されているかを説明しています 。

https://en.wikipedia.org/wiki/Cross-origin_resource_sharing

いきなりそんなこと言われても困るよな

このドメインて書いてる箇所がオリジンだ、ドメインならなぜクロスドメインといわないかは、どっかで調べてみよう
ドメイン順で並び替え7オリジン20ファイルからp5.jsは構成されているようだ

原理的には、ユーザーエージェントはすべてのURIを個別の保護ドメインとして扱い、あるURIから取得したコンテンツが別のURIと相互作用するために明示的な同意を要求することができる。 残念ながら、この設計は開発者にとって面倒です。なぜなら、ウェブアプリケーションは多くの場合、協調して動作する多数のリソースで構成されているからです。 大雑把に言うと、2つのURIが同じスキーム、ホスト、ポートを持つ場合、同じオリジンに属する(すなわち、同じプリンシパルを表す)ということです。 (完全な詳細についてはセクション4参照)。

https://www.rfc-editor.org/rfc/rfc6454#section-3.2

相変わらずワケのわからない表現だが、こんな感じのことを言ってるんだろう

ウェブアプリケーションは多くの場合、協調して動作する多数のリソースで構成されている

この文書では,ユーザエージェントが権限や特権を持つ範囲としてよく使われる "オリジン "の概念を定義する。 一般に、ユーザーエージェントは、悪意のあるウェブサイト運営者が良性のウェブサイトの運営を妨害することを防ぐために、異なるオリジンから取得されたコンテンツを分離します。

https://www.rfc-editor.org/rfc/rfc6454

「ドメイン」よりも細かい「オリジン」の考え方

ドメインが登録されてても安心、とおもっても、実際はいろいろな事情でハッキングされたデバイスやミドルウェアが混入する場合があるから、特にAJAXで通信する場合はオリジンとして細かく分ておきたい

以下のリソースはすべて同じオリジンです。
http://example.com/
http://example.com:80/
http://example.com/path/file
それぞれのURIは同じスキーム、ホスト、ポートの構成要素を持っています。
次の各リソースは、他とは異なる起源を持つ。
http://example.com/
http://example.com:8080/
http://www.example.com/
https://example.com:80/
https://example.com/
http://example.org/
http://ietf.org/
それぞれのケースで、スキーム、ホスト、ポートのうち少なくとも1つの構成要素 の少なくとも一つは、リストの他のものと異なるでしょう。

https://www.rfc-editor.org/rfc/rfc6454#section-3.2.1
https://amzn.to/3LjtaGF

CORSは、JSONPパターンの現代的な代替手段として使用することができます。CORSの利点は、次のとおりです。
JSONP は GET リクエスト メソッドのみをサポートしますが、CORS は他のタイプの HTTP リクエストもサポートします。
CORS により、Web プログラマーは通常の XMLHttpRequest を使用できるようになり、JSONP よりも優れたエラー処理をサポートできるようになります。
JSONP は、外部サイトが侵害された場合にクロスサイトスクリプティング(XSS)の問題を引き起こす可能性がありますが、CORS により、Web サイトは応答を手動で解析してセキュリティを向上させることができます[3]。
JSONPの主な利点は、CORSがサポートされる以前のレガシーブラウザ(Opera MiniおよびInternet Explorer 9以前)で動作する能力でした。現在、CORS はほとんどの最新 Web ブラウザでサポートされています。


お願い致します