Cross-Origin Resource Sharing (CORS)
概要
CORS (Cross-Origin Resource Sharing) Policyは、サーバー上のリソースが異なるオリジンからどのようにアクセスされるかを制御します。これは、異なるドメインにホストされているAPIに依存するWebアプリケーションにとって重要です。CORSポリシーは、許可されたメソッド、ヘッダー、資格情報、およびキャッシュ動作を定義することによって、安全なクロスオリジンリクエストを保証します。
設定の詳細
CORS Policyには、アクセスとセキュリティを制御するいくつかの重要な設定が含まれています:
Field | Description | Example Values | Notes |
---|---|---|---|
methods | 許可されたHTTPメソッドを定義します。 | GET, HEAD, PUT, PATCH, POST, DELETE, OPTIONS, TRACE, CONNECT | すべてのメソッドを許可するには * を使用します。 |
origins | 許可されたオリジン(ドメイン)を指定します。 | https://www.example.com:8000, https://www.google.com:80 | すべてのオリジンを許可するには * を使用します。 |
allowHeaders | 許可されたリクエストヘッダーのリストです。 | x-apim-key, Content-Type | すべてのヘッダーを許可するには * を使用します。 |
exposedHeaders | クライアントに公開されるべきヘッダーを定義します。 | Content-Length, X-My-Custom-Header, X-Another-Custom-Header | すべてのヘッダーを公開するには * を使用します。 |
allowCredential | 資格情報(クッキー、認証)が許可されるかどうかを決定します。 | true / false | trueの場合、オリジンまたはallowHeadersで * を使用することはできません。デフォルト: false。 |
maxAge | プレフライトリクエストがキャッシュされる期間(秒単位)です。 | 3600 | デフォルト: 3600(1時間)。 |
注意:
- セキュリティリスクを防ぐために、originsでの使用は必要な場合を除いて避けてください。
- 認証資格情報が必要ない場合は、allowCredentialをfalseに設定してください。
- exposedHeadersで必要なヘッダーのみを公開してください。
- maxAge を増やして、不必要なプレフライトリクエストを減らします。
- 許可されるメソッドとヘッダーを必要なものだけに制限します。