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などでは発生しない