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

CDN:リファラーホワイトリストまたはブラックリストを設定してホットリンク保護を有効にする

最終更新日:Dec 12, 2024

リファラーベースのホットリンク保護とは、リファラーヘッダーに基づくアクセス制御を指します。 リファラーホワイトリストまたはブラックリストを設定してアクセスを制御し、リソースを不正アクセスから保護できます。 リファラーホワイトリストまたはブラックリストを設定した後、Alibaba Cloud CDN はリファラーヘッダーに基づいてリクエストを許可または拒否します。

重要
  • デフォルトでは、Alibaba Cloud CDN ではリファラーベースのホットリンク保護は無効です。 つまり、すべてのWebサイトがリソースにアクセスできます。

  • リファラーベースのホットリンク保護は、データ送信の悪用を防ぐ方法です。 保護方法の詳細については、「データ送信の不正使用の防止」をご参照ください。

  • ドメイン名をリファラーホワイトリストまたはブラックリストに追加すると、ドメイン名と一致するワイルドカードドメイン名が自動的にホワイトリストまたはブラックリストに追加されます。 たとえば、リファラーホワイトリストまたはブラックリストにaliyundoc.comを追加すると、* .aliyundoc.comに一致するすべてのドメイン名に対してホットリンク保護が有効になります。

リファラー構造

リファラーヘッダーは、HTTPリクエストのヘッダーセクションのコンポーネントであり、ソースアドレスに関する情報を含み、リクエストのソースを識別するために使用されます。 Refererヘッダーは、スキーム、ドメイン、パス、およびパラメーターで構成されます。 Refererヘッダーの構造を次の図に示します。

image
説明
  • プロトコルとドメイン名は必須で、パスとクエリのパラメーターはオプションです。

  • Alibaba Cloudでは、[スキームを無視] を選択することで、ドメイン名のみをリファラーとして指定できます。

シナリオ

リファラーホワイトリストまたはブラックリストは、次のシナリオに適しています。

  • 著作権保護: Webサイトの著作権で保護されたコンテンツを保護するために、リファラーホワイトリストまたはブラックリストを使用して、許可されたWebサイトのみがコンテンツにアクセスできるようにします。

  • ホットリンク保護: リファラーホワイトリストまたはブラックリストは、リソースが他のWebサイトで使用されないようにすることができます。

  • 強化されたWebサイトのセキュリティ: リファラーホワイトリストに含まれているドメイン名のみがWebサイトリソースにアクセスできます。 これにより、機密情報の悪意のあるホットリンクや盗難を防ぎます。

  • トラフィックソース管理: リソースの使用を許可されているドメインを管理できます。 これにより、Webサイトのセキュリティと安定性が保証されます。

さまざまなシナリオでホットリンク保護機能を使用して、Webサイトの資産を保護し、トラフィックを管理し、Webサイトのセキュリティを向上させることができます。

制御ポリシー機能の動作

サーバーは各リクエストのRefererフィールドをチェックし、リクエストのRefererフィールドが事前設定されたホワイトリストと一致しない場合はリクエストを拒否します。 これにより、帯域幅とサーバーリソースを節約できます。 Alibaba Cloud CDN のリファラールール:

  • リクエストのリファラーヘッダーがリファラーブラックリストに含まれているか、リファラーホワイトリストに含まれていない場合、Alibaba Cloud CDN はリクエストを拒否します。

  • リクエストのリファラーヘッダーがリファラーホワイトリストに含まれている場合、Alibaba Cloud CDN はリクエストを許可します。

image

使用上の注意

  • リファラーベースのホットリンク保護を設定した後でも、リファラーブラックリストのクライアントからのリクエストはポイントオブプレゼンス (POP) に到達する可能性があります。 ただし、POPはリクエストを拒否し、HTTP 403のステータスコードを返します。 リクエストはAlibaba Cloud CDN ログに記録されます。

  • リファラーベースのホットリンク保護とは、リファラーヘッダーに基づくアクセス制御を指します。 POPがブラックリスト内のクライアントからのリクエストをブロックしたときに生成されるデータ転送と、クライアントがHTTPS経由でリソースをリクエストした場合のHTTPSリクエストに対して課金されます。

  • データ送信の悪用はインターネットアクセスによるものです。 したがって、リファラーベースのホットリンク保護ルールはパブリックドメイン名にのみ適用されます。

手順

  1. Alibaba Cloud CDNにログインします。

  2. 左側のナビゲーションウィンドウで、ドメイン名.

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

  4. ドメイン名の左側のナビゲーションツリーで、リソースアクセス制御.

  5. ホットリンク保護タブをクリックします。変更.

  6. ビジネス要件に基づいて、次の表に示すパラメーターを設定します。リファラーベースのホットリンク保護パラメータ

  7. OK.

リファラーベースのホットリンク保護パラメータ

パラメーター

説明

タイプ

  • ブラックリスト

    RefererフィールドがRefererブラックリストにあるリクエストは、リソースにアクセスできません。

  • ホワイトリスト

    RefererフィールドがRefererホワイトリストにあるリクエストのみがリソースにアクセスできます。

説明

ホワイトリストとブラックリストは相互に排他的です。 リストの1つのみを設定できます。

ルール

  • リファラーホワイトリストまたはブラックリストに複数のドメイン名を追加できます。 ドメイン名は、キャリッジリターン文字で区切ります。

  • アスタリスク (*) をワイルドカードとして使用して、すべてのドメイン名を照合できます。 たとえば、* .example.comexample.comのすべてのサブドメインと一致します。

  • ドメインとそのすべてのサブドメインに一致するようにアスタリスク (*) を省略することもできます。 たとえば、example.comexample.com* .example.comに一致します。

説明
  • [ルール] フィールドに入力する内容は、60 KBを超えることはできません。

  • ルールを設定するときにプロトコルを指定する必要はありません。

リダイレクトURL

リクエストがブロックされると、HTTPステータスコードが302され、Locationヘッダーが返されます。 このパラメーターは、Locationヘッダーの値です。 値はhttp:// またはhttps:// ( http://www.example.com など) で始める必要があります。

詳細設定

ユーザーがブラウザのアドレスバーからリソース URL に直接アクセスできるようにします。

デフォルトでは、チェックボックスは選択されていません。 チェックボックスをオンにすると、リファラーホワイトリストとブラックリストのどちらを設定しても、空のリファラーヘッダーを含むリクエストはCDNリソースにアクセスできます。

空のRefererヘッダーは、次のいずれかのシナリオを示唆します。

  • Refererヘッダーはリクエストに含まれていません。

  • Refererヘッダーが含まれていますが、値は空です。

完全一致

デフォルトでは、チェックボックスは選択されていません。 このチェックボックスをオンにすると、一致するアスタリスク (*) を省略することはできません。 アスタリスク (*) を使用しない場合、example.comexample.comのみに一致します。

スキームを無視

  • [スキームを無視] を選択しない場合、Refererヘッダーの値はhttp:// またはhttps:// で始まる必要があります。

  • [スキームを無視] を選択した場合、リファラーヘッダーの値はhttp:// またはhttps:// で始まる必要はありません。

ルール条件

ルール条件は、構成が要求に適用されるかどうかを決定するために要求内のパラメータを識別できる。

  • 条件を使用しない

  • ルールエンジンで設定されたルール条件を選択します。 詳細については、「ルールエンジン」をご参照ください。

Refererヘッダーの確認

curlコマンドは、Refererヘッダーを確認するために使用されます。 -eの後にリファラーヘッダーの値が続き、-Iの後に高速化ドメイン名が続きます。 ヘッダー情報が返されます。 この例では、ホワイトリストが使用されます。

シナリオ1: リファラーベースのホットリンク保護ルールのみを設定する

説明
  1. このシナリオでは、ルールaliyun.comのみが設定されます。 リダイレクトURL、詳細設定、およびルール条件パラメーターは設定されていません。

  2. Refererヘッダーにhttp(s):// aliyun.comが含まれているリクエスト、またはそのサブドメインが一致します。 Refererヘッダーがホワイトリストにないリクエストは拒否されます。

  1. 次のコマンドを実行して、Refererヘッダーにルートドメインが含まれているリクエストを確認します。curl -e http://aliyun.com -I DomainName

    image

  2. 次のコマンドを実行して、Refererヘッダーにサブドメインが含まれているリクエストを確認します。curl -e http://sub.aliyun.com -I DomainName

    image

  3. 次のコマンドを実行して、Refererヘッダーに別のドメインが含まれているリクエストを確認します。curl -e http://aIiyun.com -I DomainName

    image

  4. 次のコマンドを実行して、Refererヘッダーが空のリクエストを確認します。curl -e "" -I DomainName

    image

  5. 次のコマンドを実行して、設定されたドメインのみを含むRefererヘッダーを確認します。curl -e aliyun.com -I DomainName

    image

シナリオ2: リファラーベースのホットリンク保護ルールを設定し、[ブラウザからのリソースURLアクセスを許可] を選択します。

説明
  1. このシナリオでは、ルールaliyun.comが設定され、ブラウザからのリソースURLアクセスを許可することが選択されます。 詳細設定の他のオプションは選択されていません。 リダイレクトURLおよびルール条件パラメーターは設定されていません。

  2. シナリオ1と比較して、Refererヘッダーが空のリクエストは一致します。 このようにして、Refererヘッダーが空で、直接アクセス要求が許可されます。

  1. 次のコマンドを実行して、Refererヘッダーが空のリクエストを確認します。curl -I DomainName

    image

  2. 次のコマンドを実行して、Refererヘッダーに "" が含まれるリクエストを確認します。curl -e "" -I DomainName

    image

シナリオ3: リファラーベースのホットリンク保護ルールを設定し、[スキームを無視] を選択します。

説明
  1. このシナリオでは、ルールaliyun.comが設定され、無視スキームが選択されます。 詳細設定の他のオプションは選択されていません。 リダイレクトURLおよびルール条件パラメーターは設定されていません。

  2. シナリオ1と比較して、Refererヘッダーにaliyun.comなどのプロトコルが含まれていないリクエストは許可されます。

次のコマンドを実行して、Refererヘッダーにプロトコルが含まれていないリクエストを確認します。curl -e aliyun.com -I DomainName

image

よくある質問

リクエストのRefererヘッダーにHTTPまたはHTTPS文字列が時々ないのはなぜですか?

ほとんどの場合、HTTPまたはHTTPS文字列はリクエストのRefererヘッダーに含まれます。

ただし、ブラウザがHTTPSを使用しないWebサイトからHTTPSを使用するWebサイトにリクエストをナビゲートする場合、ブラウザはRefererヘッダーにドメイン名のみを表示することがあります。 これは、Referrer-Policyなどのセキュリティポリシーに基づいて機密ユーザーデータを保護するためです。

さらに、一部のブラウザまたはプロキシサーバーでは、プライベートブラウジングモードでのアクセスや匿名プロキシの使用など、特定のシナリオでリファラー文字列が自動的に除外される場合があります。

したがって、実際には、ホットリンク保護を設定するときにHTTPまたはHTTPSがリファラーヘッダーに含まれないシナリオに注意してください。 RefererヘッダーにHTTPまたはHTTPSが含まれていないリクエストを許可する場合は、スキームを無視する.

リクエストでRefererヘッダーが空になるのはなぜですか? 問題を解決するにはどうすればよいですか?

ほとんどの場合、リクエスト内のRefererヘッダーには、httphttpsなどのプロトコル、ホスト名、場合によってはパスとクエリ文字列を含む完全なURIが含まれます。 リクエストのRefererヘッダーは、次の理由により空になることがあります。

  • 直接アクセス: ユーザーがブラウザーのアドレスバーにURLを入力したり、ブックマークを使用したり、新しい空白のブラウザータブを開いたりすると、参照ページが存在しないため、Refererヘッダーは空になります。

  • ユーザープライバシー設定: ユーザーはプライベートブラウジングモードを設定するか、プライバシー重視の拡張機能を使用して、プライバシーの懸念からリファラーヘッダーを削除します。

  • セキュリティプロトコル: リクエストがHTTPSページからHTTPページにリダイレクトされた場合、ブラウザは機密情報の漏洩を防ぐためにRefererヘッダーを表示しません。

  • クライアントポリシー: セキュリティ上、一部のWebサイトまたはアプリケーションでは、<meta> タグまたはReferrer-policyなどのHTTPヘッダーを指定して、ブラウザによるRefererヘッダーの送信を制限できます。

  • クロスオリジンリクエスト: ブラウザのセキュリティポリシーに基づいて、特定のクロスオリジンリクエストにリファラーヘッダーが含まれていない場合があります。

対処方法は、シナリオやセキュリティ要件によって異なります。

  • デフォルトポリシー: サービスがRefererヘッダーに依存していない場合、空のRefererヘッダーを持つリクエストを許可できます。

  • アクセスを許可: 特定のURLまたはソースについては、ユーザーがブラウザのアドレスバーからリソース URL に直接アクセスできるようにします。 を選択して、これらのURLまたはソースからのリクエストのみを許可できます。 このように、POPは、Refererヘッダーが空であるかどうかに関係なく、ユーザーがリソースにアクセスできるようにします。