GRADUATION
オリジンの壁と、その緩め方が見えるようになりました。
ブラウザの最も基本的な守り——同一オリジンポリシー——と、それを意図的に緩める CORS の仕組み、そして緩めすぎた誤設定が何を許してしまうかを、自分の localhost に立てた2つのオリジンで体感しました。
おつかれさまでした。
持ち帰るもの
- SOP はブラウザの土台別オリジンのレスポンスを、スクリプトが勝手に読むことを既定で禁じる。これが無ければ、開いているだけで他サイトのデータを吸い出せてしまいます。
- CORS は「緩める」仕組みサーバが Access-Control-Allow-Origin 等のヘッダで「このオリジンには読ませてよい」と明示的に許可する。CORS はSOPを破るものではなく、穴を開ける鍵です。
- 反射 + 資格情報が危険Origin をそのまま反射し、資格情報も許可する設定は、任意のサイトに認証済みレスポンスを読ませます。許可は厳格な許可リストで。
次にやるといいこと
- 次は「セキュリティヘッダーと CSP」。ブラウザに守りを指示するヘッダーの、もう一つの主役を扱います。
- CORS はサーバ間・API 診断でも頻出です。認証・認可(sec-authz / sec-auth)と組み合わせて読む力が効いてきます。