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 は同じリクエストでレスポンスをそのまま取得できる。

関連

抽象。

  • 制限が効くのは従う側だけで、従わない相手には効かない
  • 制限を宣言するのは提供する側だが、強制するのは受け取る側である

関連。