generated at
Same-Origin Policy
SOP
同一生成元ポリシー
Cross Originの場合にリソースの読み書きを禁止するPolicy
Same Originである必要がある
Browserの仕様として持っているので、反するものは自動的に拒否される


SOPが存在しない場合にどういう問題が生じるか







SOPがあるとどうなるか
XSとSはCross Originの関係にあるので、手順3でXS内からXHR経由でSへ(simple) requestを送っているが、そのresponseを読むことができない
これを可能にするためには、CORSを利用する必要がある
簡単に言うと、S側が「XSも許可しますよ」というのを明示する必要がある



このPolicyは、以下のような脆弱性を防ぐためにある
ただし、Same Origin内では防げない
例えば、任意のHTMLタグを使用できるSNSがあれば、攻撃者Xは、被攻撃者Aの投稿を操作できる
というか、XSSはSOPの上で攻撃するモノを指す(?)から、
「SOPはXSSを防ぐためにある」はおかしいかもしれない
寧ろ、「XSSはSOPがあっても攻撃するためにある」に近い気もする




Same-Origin Policyとは別の独自の境界条件を持つもの
サーバー側で発行時に指定可能
デフォルトではhttp, httpsの両方で共有される

これらはなぜこのPolicyに則っていないのか?


ブラウザ上のJSから、外部のserver Aにreq送るのを防ぐだけで、
ブラウザ上のJS → 攻撃者のserver X →外部のserver A
のように送るのは防げないので、セキュリティ対策としてかなりヘボくない #??


参考