創屋ぷれす

Access-Control-Allow-Origin

ユーザがブラウザで、とあるシステム(WEBサイト)Aを操作中、
データを保持するシステムBから個人情報などのデータを取得する。

そのな状況があると思います。

ここで、システムBは応答ヘッダーに、システムAからの要求は許可している、
という意味で Access-Control-Allow-Origin に システムA の Origin を設定します。

ブラウザは、以下が一致するかをチェックします。
・要求ヘッダーの Origin
・応答ヘッダーの Access-Control-Allow-Origin

一致しない場合は、安全のため、応答を JavaScript で取得させない動きになります。
(例えば、システムC が システムAのふりをして要求した場合)

この辺、以下のような場合に応じて挙動が変わり仕様が複雑で面倒ですが…
・リダイレクトが発生する
・認証情報の送受信を行う

これまでのクラッキング(ハッキング)とそれを防ぐための闘いの歴史をたどっているような気分になります。

このあたりは XmlHttpRequest に代わる Fetch API として仕様をまとめているようですが、
細かい部分では、現状ブラウザによる挙動の違いもあり、安心して使用するにはまだ時間がかかりそうです。

Comments are closed.