Referer Access Rules

最終更新日:2024-07-12 18:12:15

クライアントがWebサーバーにリクエストを送信する際、通常、リクエストの送信元ページを Web サーバーに知らせるRefererヘッダーが送信されます。したがって、このヘッダーに基づいてアクセス制御を行うことができます。CDNエッジサーバーがクライアントリクエストを受信すると、HTTPリクエストヘッダーのRefererフィールドの情報を確認し、特定のルールに準拠するユーザーリクエストを許可または拒否します。これは、特定のページからのみコンテンツへのアクセスが許可されるシナリオに適しています。例えば、ユーザーが特定のページのリンクをクリックしてリソースにアクセスすることしか許可されていない場合などです。

Refererのブラックリストとホワイトリストの設定方法

  1. CDNetworksコンソールにログインし、適切な製品を選択します。
  2. Configurationに移動し、Refererルールを設定したいドメインを見つけてEdit Configuration[Feature Upgrade] Advanced Access Controlをクリックします。
  3. 左側のサイドバーからHotlink Protection - Referer Anti-Hotlinkingに移動し、Addをクリックします。
  4. 必要に応じて次のように設定します。

Effective Range
これは、Refererルールが適用されるリクエストの範囲を定義します。以下のオプションから選択できます:

設定 説明
All Requests アクセス制御ルールはすべての種類のリクエストに適用されます。
Only Homepage http://domain/https://domain/ のようなドメインのルートディレクトリにのみ適用されます。
Specified File Type 特定のファイルタイプにのみ適用されます。左側にある事前定義されたファイルタイプから選択するか、カスタムファイルタイプを定義できます。複数のカスタムファイルタイプは、セミコロン ; で区切ります。(例:jpg;png)
Specified URI 特定のURIでのコンテンツリクエストにのみ適用されます。二つのURIマッチングオプションが利用可能です:
Exact matching: パラメータを含む完全なURI(例:path/index.html?abc=123)
Ignore the parameter matching: クエリパラメータを含まないURI(例:path/index.html)
Specified Directory 特定のディレクトリ下のリクエストに適用されます。例えば、/file/abc/ は http://domain/file/abc/* 下のすべてのコンテンツに適用されます。
注:ディレクトリは / で始まり、/ で終わる必要があり、文字、数字、特定の特殊文字(アンダースコア、ハイフン、パーセント記号、ドット)のみを含むことができます。複数のディレクトリは改行で区切る必要があります。
URL Pattern 正規表現を使用して、ルールが適用されるリクエストの範囲を制御します。例えば、パターン *.jpg$.jpg で終わるすべてのURLにアクセス制御が適用されます。

Referer Type
Refererブラックリスト または ホワイトリストを設定できます:

設定 説明
Blacklist 二つのオプションが利用可能です:
Referer blacklist(Domain): Refererに指定されたドメインが含まれている場合、アクセスは拒否されます。例:www.test.comなどです。
ドメインの先頭に http://https:// を追加する必要はありません。
Referer blacklist(URL): Refererに指定されたURLが含まれている場合、アクセスは拒否されます。例:http://www.test.com/index.html
Whitelist 二つのオプションが利用可能です:
Referer whitelist(Domain): Refererに指定されたドメインが含まれている場合のみ、アクセスが許可されます。例:www.test.comなどです。
ドメインの先頭に http://https:// を追加する必要はありません。
Referer whitelist(URL): Refererに指定されたURLが含まれている場合のみ、アクセスが許可されます。例:http://www.test.com/index.html

ヒント
ブラックリストとホワイトリストには、改行で区切って複数のドメインまたはURLを含めることができます。
システムはホワイトリストルールを一つだけサポートしています。複数のReferer値が必要な場合、それらはすべてこの単一のホワイトリスト内に含まれている必要があります。
ホワイトリストまたはブラックリストでワイルドカードドメインは許可されていません。

Action
Refererが設定されたルールに合致しておらず、CDNによってリクエストが拒否される場合、エラーコードを直接返すか別のURLにリダイレクトするかを選択します:

  • Deny Access: CDNはリクエストを403エラーで拒否します。
  • Redirect URL: CDNはリクエストを別のURLにリダイレクトします。

Allow NULL Referer
これを有効にすると、Refererがない場合でも、ユーザーはブラウザのアドレスバーにURLを入力してコンテンツに直接アクセスできます。

Priority
複数のアクセス制御ルールが設定されている場合、CDNは優先度が高い番号から順にそれらを実行します。

設定が完了したら、OKをクリックし、次にNextを選択して設定を送信してください。本番環境への潜在的な影響を最小限に抑えるために、ステージング環境でのPre-deployテストを強くお勧めします。この重要なステップにより、設定が正確であることが本番環境に移行する前に保証されます。設定の正確性が確認されたら、Deploy Nowをクリックして本番環境に実装します。設定は通常、3-5分以内に有効になります。Pre-deployテストに関する包括的なガイダンスと、設定の有効性を確認するには、チュートリアルDeploy the Configurations to Staging Environment for Validationを参照してください。

Best Practice

例1: Refererブラックリストを設定する
この例では、リクエストのRefererにwww.cdnetworks.comまたはdash.cdnetworks.comが含まれている場合、ドメイン下のすべてのリクエストへのアクセスを拒否する方法を示しています。設定は以下の通りです:

例2: Refererホワイトリストを設定する
この例では、リクエストのRefererにwww.cdnetworks.comまたはdash.cdnetworks.comが含まれている場合のみ、ドメイン下のすべてのリクエストへのアクセスを許可する方法を示しています。設定は以下の通りです:

重要な注意点

Refererのブラックリストとホワイトリストを同時に設定しないでください。Refererは両方のリストに対して順にチェックされ、これによりCDNへのすべてのアクセスが拒否され、ビジネスに悪影響を及ぼす可能性があります。例えば、以下に示すようにRefererブラックリストとホワイトリストの両方を設定すると、CDNによってすべてのアクセスが拒否される結果となります。

なぜすべてのリクエストが拒否されるのか?

  1. Refererにwww.test.comが含まれているリクエストは、ブラックリストのルールに一致するため、CDNによってアクセスが拒否されます。
  2. Refererにwww.test.comが含まれていないリクエストは、ブラックリストによって拒否されないものの、www.test.comのRefererを持つリクエストのみを許可するホワイトリスト基準に一致しないため、やはりアクセスが拒否されます。

ブラックリストとホワイトリストの両方を設定する必要がある場合は、適切な設定を確実に行うために、弊社のテクニカル サポートにご連絡ください。