KDOC 570: CORSはサーバのリソースを保護しない
この文書のステータス
- 作成
- 2026-05-19 貴島
- レビュー
- 2026-05-19 貴島
概要
CORSは サーバ のリソースを保護するものと誤って理解していた。正しくはブラウザを保護するものである。
Access-Control-Allow-Origin がサーバ側に設定されていても、ブラウザ以外のHTTPクライアントでは無視される。
例を示す。
GET /submit HTTP/1.1 Host: example.com Origin: https://anywhere.com Access-Control-Allow-Origin: https://example.com
この場合、ブラウザは Origin が許可されていないため返ったレスポンスの読み取りを阻止する。しかし curl は同じリクエストでレスポンスをそのまま取得できる。
関連
抽象。
- 制限が効くのは従う側だけで、従わない相手には効かない
- 制限を宣言するのは提供する側だが、強制するのは受け取る側である
関連。
- 追加調査: ではなんのためにあるのか
- 類似: KDOC 81: iframeの制約を見る。CORSが何に効くのかを取り違えていた例
- 補足: KDOC 83: CORSを確認する。ブラウザ以外のクライアントでもCORSのレスポンスヘッダーは見られる
- 類似: KDOC 93: Access-Control-Allow-Headersを調べた。CORSの拒否はブラウザが行う例