CORS

読み

コルス

意味

  • 異なるオリジン(ドメイン・ポート・プロトコル)間でのHTTPリクエストをブラウザが制御するセキュリティ仕様
  • サーバーがAccess-Control-Allow-Originなどのヘッダーで許可したオリジンからのみリソースへアクセスを認める仕組み
  • XSS攻撃やデータ漏洩を防ぐため同一オリジンポリシーを緩和しつつ安全な通信を実現するW3C標準

比喩

国境検査のようなもの。異なる国(ドメイン)間でのやり取りに、許可証が必要。

語源

Cross-Origin Resource Sharing=クロスオリジン間でのリソース共有。ブラウザセキュリティの基本概念

例文

  • フロントエンドからAPIを呼び出したらCORSエラーが発生しサーバー側にAccess-Control-Allow-Originヘッダーを追加した
  • 開発環境でプロキシを設定しCORS制約を回避してローカルAPIと通信した
  • CORSプリフライトリクエスト(OPTIONS)が飛びサーバーが許可を返してから本リクエストが実行された

よくある勘違い

  • CORSエラーをフロントエンド側だけで解決しようとすること→サーバー側のヘッダー設定が必須
  • Access-Control-Allow-Originに*を設定すれば安全だと思うこと→認証情報を含むリクエストでは特定オリジンを指定する
  • CORSはサーバー側の制限だと誤解すること→ブラウザが実施するセキュリティ機能でcurlなどでは発生しない

関連用語