すべてのプロダクト
Search
ドキュメントセンター

CDN:CORS の設定

最終更新日:Feb 22, 2024

コンテンツ配信のためにWebサイトをAlibaba Cloud CDNに追加した後、カスタムHTTPレスポンスヘッダーを設定して、異なる配信元サーバーからのリソースにアクセスできます。

CORSとは何ですか?

クロスオリジンリソース共有 (CORS) は、webページが異なるオリジンサーバーからリソースにアクセスしてロードできるようにするために、HTML5によって提供される標準のクロスオリジンソリューションです。 これにより、データ伝送のセキュリティが確保される。 詳細については、「クロスオリジンリソース共有 (CORS) 」をご参照ください。

メリット

セキュリティ上の目的で、ブラウザは同一オリジンポリシーを使用します。 これにより、webページが、異なるドメインまたはサブドメインから、または異なるプロトコルまたはポートを介してリソースにアクセスおよびロードする要求を開始することが制限されます。 たとえば、example.comはn example.orgのリソースにアクセスできません。 CORSを設定するときに、ポイントオブプレゼンス (POP) がクライアントに返す応答ヘッダーを指定できます。 このように、要求が、許可されたヘッダに含まれるヘッダを搬送する場合、要求されたリソースは、異なる起点からであってもアクセスされ、ロードされ得る。

CORSの仕組み

CORSが有効になっていません

image

CORS対応

image

使用上の注意

  • オリジンサーバーがOSS (Object Storage Service) バケットで、CORSがOSSコンソールとAlibaba Cloud CDN コンソールの両方で設定されている場合、Alibaba Cloud CDN のCORS設定が使用されます。 詳細については、「CORS」をご参照ください。

  • オリジンサーバーがオンプレミスサーバーまたはECSインスタンスの場合、動的コンテンツと静的コンテンツを区別することを推奨します。 これにより、静的コンテンツの配信がAlibaba Cloud CDN によって高速化されます。 Alibaba Cloud CDN のCORS設定は、静的リソースに対してのみ有効になります。

CORSの有効化

  1. Alibaba Cloud CDNコンソール

  2. 左側のナビゲーションウィンドウで、ドメイン名 をクリックします。

  3. [ドメイン名] ページで、管理するドメイン名を見つけて、アクション 列の 管理 をクリックします。

  4. ドメイン名の左側のナビゲーションツリーで、キャッシュ設定 をクリックします。

  5. ノード HTTP レスポンスヘッダー タブをクリックします。

  6. 追加 をクリックします。

  7. 次の表に従ってパラメーターを設定し、OK をクリックします。

    自定义

    パラメーター

    実行内容

    追加

    応答ヘッダー

    アクセス制御-許可-オリジン

    応答ヘッダー値

    *

    説明
    • このヘッダーをアスタリスク (*) に設定すると、すべてのオリジンに一致します。

    • 1つ以上のIPアドレス、ドメイン名、またはIPアドレスとドメイン名の組み合わせを設定できます。 複数入力する場合は、カンマ (,) で区切ります。

    • このヘッダーのワイルドカード文字としてアスタリスク (*) を使用しない場合、値はhttp:// またはhttps:// で始まる必要があります。

    • ポート番号がサポートされています。

    • ワイルドカードドメイン名がサポートされています。

    重複の許可

    いいえ

    説明
    • はい: ヘッダーの重複が許可されています。 オリジンサーバーから返されたヘッダーと、レスポンスに追加されたヘッダーがクライアントに返されます。

    • いいえ: ヘッダーの重複は許可されていません。 オリジンサーバーから返されたヘッダーは、レスポンスに追加されたヘッダーによって上書きされます。

    この例では、値Noが使用されます。 このパラメーターは、ビジネス要件に基づいて設定できます。

    重要

    重複の許可CORS の設定は相互に排他的です。 重複の許可 を [はい] に設定した場合、はい の設定は無効になります。

    CORS

    有効

    説明
    • 実行内容追加 に設定し、応答ヘッダー を [アクセス制御-許可-オリジン] に設定した場合にのみ、CORSパラメーターを設定できます。

    • CORSの有効な値: しないおよび有効。 デフォルト値: しない

      • しない: POPはユーザーリクエストのOriginヘッダーをチェックしません。 この場合、POPはAccess-Control-Allow-Originの設定値を返します。

      • 有効: POPはユーザーリクエストのOriginヘッダーをチェックし、次のルールに基づいてAccess-Control-Allow-Originヘッダーの値を指定します。

        • ワイルドカードパターンマッチ: Access-Control-Allow-Originヘッダーをアスタリスク (*) に設定した場合、ユーザーリクエストにOriginヘッダーまたはOriginヘッダーに指定された値が含まれているかどうかに関係なく、Access-Control-Allow-Origin:* が返されます。

        • 完全一致: Access-Control-Allow-Originヘッダーに1つ以上の値を指定できます。 複数入力する場合は、カンマ (,) で区切ります。

          • ユーザーリクエストのOriginヘッダーの値がAccess-Control-Allow-Originヘッダーの値と一致する場合、一致したAccess-Control-Allow-Originヘッダーの値が返されます。

          • ユーザーリクエストのOriginヘッダーの値がAccess-Control-Allow-Originヘッダーの値と一致しない場合、Access-Control-Allow-Originヘッダーは返されません。

        • ワイルドカードドメイン名の一致: Access-Control-Allow-Originヘッダーをワイルドカードドメイン名に設定すると、Originヘッダーの値がワイルドカードドメイン名と一致します。

      • CORSパラメーターを有効に設定し、応答ヘッダー値パラメーターに指定する値にハイフン (-) が含まれている場合は、ハイフン (-) を %- にエスケープする必要があります。 例:

        • 元の応答ヘッダー値: http://doc.aliyun-example.com

        • エスケープされたレスポンスヘッダー値: http:// doc.aliyu n%-example.com

  8. 次の表に従ってパラメーターを設定し、OK をクリックします。

    请求方法

    パラメーター

    実行内容

    追加

    応答ヘッダー

    アクセス制御-許可-メソッド

    応答ヘッダー値

    GETPOST、またはPUT

    説明

    GET, POST, PUTを同時に指定する場合は, コンマ (,) で区切ります。

    重複の許可

    いいえ

    説明
    • はい: ヘッダーの重複が許可されています。 オリジンサーバーから返されたヘッダーと、レスポンスに追加されたヘッダーがクライアントに返されます。

    • いいえ: ヘッダーの重複は許可されていません。 オリジンサーバーから返されたヘッダーは、レスポンスに追加されたヘッダーによって上書きされます。

    この例では、値Noが使用されます。 このパラメーターは、ビジネス要件に基づいて設定できます。

例1

Access-Control-Allow-Originヘッダーをコンマ (,) で区切られた1つ以上の値に設定した場合:

  • ユーザーリクエストのOriginヘッダーの値がAccess-Control-Allow-Originヘッダーの値と一致する場合、一致したAccess-Control-Allow-Originヘッダーの値が返されます。

  • ユーザーリクエストのOriginヘッダーの値がAccess-Control-Allow-Originヘッダーの値と一致しない場合、Access-Control-Allow-Originヘッダーは返されません。

Alibaba Cloud CDN コンソールで、レスポンスヘッダーはアクセス制御-許可-オリジン: http://example.com https://aliyundoc.comに設定されています。

  • ユーザーリクエストのOriginヘッダーの値がhttp://example.comの場合、POPはAccess-Control-Allow-Origin:http://example.comを返します。

  • ユーザーリクエストのOriginヘッダーの値がhttp://aliyundoc.comの場合、リクエストはHTTPを使用し、POPはHTTPSリクエストに応答するため、POPはAccess-Control-Allow-Originを返しません。

  • ユーザーリクエストのOriginヘッダーの値がhttps://aliyundoc.comの場合、POPはAccess-Control-Allow-Origin:https://aliyundoc.comを返します。

  • ユーザーリクエストのOriginヘッダーの値がhttp://aliyun.comの場合、ドメイン名が一致しないため、POPはAccess-Control-Allow-Originを返しません。

例2

Access-Control-Allow-Originパラメーターをワイルドカードドメイン名に設定した場合、POPはユーザーリクエストのOriginヘッダーの値がワイルドカードドメイン名と一致するかどうかを確認します。

Alibaba Cloud CDN コンソールで、レスポンスヘッダーはAccess-Control-Allow-Origin:http:// * .aliyundoc.comに設定されています。

  • ユーザーリクエストのOriginヘッダーの値がhttp://demo.aliyundoc.comの場合、POPはAccess-Control-Allow-Origin:http://demo.aliyundoc.comを返します。

  • ユーザーリクエストのOriginヘッダーの値がhttp://demo.example.comの場合、ドメイン名が一致しないため、POPはAccess-Control-Allow-Originを返しません。

  • ユーザーリクエストのOriginヘッダーの値がhttps://demo.aliyundoc.comの場合、リクエストはHTTPSを使用し、POPはHTTPリクエストにのみ応答するため、POPはAccess-Control-Allow-Originを返しません。