KDOC 570: CORSはサーバのリソースを保護しない

この文書のステータス

  • 作成
    • <署名>
  • レビュー
    • <署名>

概要

CORSは サーバ のリソースを保護するものと誤って理解していた。

Access-Control-Allow-Origin がサーバ側に設定されていても、ブラウザ以外のHTTPクライアントでは無視される。

例を示す。

# HTTPクライアント: リクエストのHTTPヘッダー
GET /submit HTTP/1.1
Host: example.com
Origin: https://anywhere.com

# サーバ: レスポンスのHTTPヘッダー
Access-Control-Allow-Origin: https://example.com

この場合、ブラウザは Origin が許可されていないためレスポンスをスクリプトに渡さない。しかし curl は同じリクエストでレスポンスをそのまま取得できる。

関連