Cross-Origin Resource Sharing(CORS)がCloudflareのCDN上でキャッシュされたリソースを保護する方法とCORSヘッダーを持つアセットを管理する方法を説明します。
概要
クロスオリジンリクエストは、オリジン外部のWebサイトリソースに対するリクエストです。 たとえば、a.example.comがb.secondexample.comからのリソースの提供を試みます。 CORSは、クロスオリジンリクエスト(イメージやb.secondexample.comからのJavaScriptなど)がa.example.comによって許可されているかどうかを判断するようブラウザーに指示します。 ブラウザーは、CORSによって許可されていないリソースを読み込みません。
Cloudflareは、次のようにCORSをサポートします:
- ホストヘッダー、オリジンヘッダー、URLパス、およびクエリに基づいてキャッシュされたアセットを識別します。 これにより、異なるリソースが同じホストヘッダーを使用できますが、異なるオリジンヘッダーは使用できません。
- オリジンサーバーからブラウザーにAccess-Control-Allow-Originヘッダーを引き渡します。
Access-Control-Allow-Originヘッダーにより、サーバーは外部ドメインとリソースを共有するためのルールを指定できます。 サーバーがリソースにアクセスするリクエストを受信すると、Access-Control-Allow-Originヘッダーの値で応答します。 Access-Control-Allow-Originヘッダーは、キャッシュ可能なコンテンツに適用されることが多いです。 Webサーバーは、リクエストで送信されるOriginヘッダーに応じて、異なるAccess-Control-*ヘッダーで応答する場合があります。
CORSヘッダーを追加する、または変更する
Webサーバー(オリジンサーバー)でCORS設定を追加または変更する場合、URLでCloudflareキャッシュを削除してもCORSヘッダーは更新されません。 次のいずれかのオプションを使用して、新しいCORSヘッダーの取得をCloudflareに強制します:
- ファイル名またはURLを変更して、キャッシュをバイパスし、最新のCORSヘッダーを取得するよう Cloudflareに指示します。
- シングルファイルパージAPIを使用して、適切なCORSヘッダーとパージリクエストを指定します。
- Webサーバー(オリジンサーバー)でリソースの最終変更時刻を更新します。 次に、更新されたCORSヘッダーを含む、最新バージョンのアセットを取得するために、完全パージを実行します。