CORS設定
概要
Cross-Origin Resource Sharing
Webページが異なるオリジンのリソースにアクセスできるようにする。
HTTPヘッダを使用する。
Webアプリが異なるオリジンのリソースにHTTPリクエストを行うとき、
ブラウザがCORSリクエストとして扱い、自動的にOriginヘッダを付与する。
サーバは、許可されるべきか判断し、CORS関連ヘッダをつけて返す。
サーバが付与するCORS関連ヘッダ
Access-Control-Allow-Origin
: このヘッダーは、リソースにアクセスを許可するオリジンを指定します。特定のオリジンまたは*
(すべてのオリジン)を指定できます。Access-Control-Allow-Methods
: サーバーが許可するHTTPメソッド(GET、POSTなど)を指定します。Access-Control-Allow-Headers
: リクエストで許可されるヘッダーを指定します。Access-Control-Max-Age
: ブラウザがプリフライトリクエストの結果をキャッシュする時間(秒単位)を指定します。Access-Control-Allow-Credentials
: クレデンシャル(クッキー、HTTP認証情報など)を含むリクエストを許可するかどうかを指定します。この場合、Access-Control-Allow-Origin
では具体的なオリジンを指定する必要があり、*
は使用できません。
プリフライトリクエスト
“安全でない”メソッド(GET、HEAD、POST以外)や特定の種類のHTTPヘッダーを使用するリクエストに対して、ブラウザは実際のリクエストを送信する前に「プリフライトリクエスト」と呼ばれるOPTIONSリクエストを送信することがあります。このプリフライトリクエストにより、サーバーはリクエストが安全に処理できるかどうかを事前に確認し、適切なAccess-Control-Allow-*
ヘッダーを応答に含めることができます。
CORSは、ウェブのセキュリティモデルを補強する重要な機構であり、ウェブアプリケーションが異なるオリジン間で安全にリソースを共有できるようにします。