0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

同一オリジンポリシーとCORS

Last updated at Posted at 2022-02-02

オリジンとは

http://aaa.com/myapp/myapp2:3000」
でHTTP通信を行ったとき、以下の要素に分解される。

  • スキーム: http
  • ドメイン: aaa.com
  • パス: myapp/myapp2
  • ポート: 3000

オリジンは「スキーム x ドメイン x ポート」の組み合わせであり、
↑の場合は**「http x aaa.com x 3000」がオリジン**となる。

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

同一のオリジン同士でしか通信できないというブラウザのセキュリティ機能。

オリジンAで読み込まれたリソース(html,js,cookie etc.)からオリジンBのリソースへの通信をしようとするとブラウザに同一オリジンポリシー違反としてブロックされる。

このポリシーが存在しないと、例えばオリジンAが悪意あるサイトで、
「別サイトへアクセス & ページの表示内容をすべて抜き取ってオリジンAのDBへ保存する」といったJSがあり、これが実行されたときに別サイトの情報をオリジンAのサイトに抜き取られてしまう。

CORS(コルス)とは

しかしながら、「オリジンA」と「オリジンB」があって1サービスとして成り立つようなとき、
想定されているオリジン同士での通信であるのに同一オリジンポリシーに阻まれてしまうという望ましくない事態になってしまう。

これを解決する・・・いわば一部に正当な穴をあけるのが「CORS」という仕組みである。

CORSの設定方法

**「アクセス先のオリジン側」に「許可するアクセス元のオリジンの情報を設定する」**形となる。

例えば、
「フロントエンドがNuxt.js」「バックエンドがRails」なシステムがある場合、Rails側にCORS設定として、Nuxt.jsのオリジンの情報を加える(gem rack-corsで容易に可能)。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?