Control Access Using Custom Request Headers

最終更新日:2024-07-17 17:29:21

カスタムヘッダーブラックリストおよびホワイトリストを設定することで、CDN上のコンテンツへのリクエストが一致する必要がある特定のHTTPヘッダーを定義できます。この仕組みにより、承認されたヘッダー、または特定のヘッダー値を持つリクエストにのみアクセスが許可され、ホットリンキングを効果的にブロックし、貴重なコンテンツを保護します。

カスタムヘッダーブラックリストまたはホワイトリストの設定方法

  1. CDNetworksコンソールにログインして適切な製品を選択します。
  2. Configuration に移動し、設定したいドメインを探して、Edit Configurationをクリックします!image.png
  3. 左サイドバーのHotlink Protection - Customized Header Anti-Hotlinkingに移動し、Addをクリックします。
  4. 必要に応じて、次のように設定します。

Effective Range
これは、カスタムヘッダーブラックリストまたはホワイトリストが適用されるリクエストの範囲を定義します。以下のオプションから選択できます:

設定 説明
All Requests アクセス制御ルールはすべてのタイプのリクエストに適用されます。
Only Homepage http://domain/https://domain/ のようなドメインのルートディレクトリにのみ適用されます。
Specified File Type 特定のタイプのファイルにのみ適用されます。左側にある事前定義されたファイルタイプを選択するか、カスタムファイルタイプを定義できます。複数のカスタムタイプはセミコロン ;で区切ります。(例: jpg;png)。
Specified URI 特定のURIのコンテンツへのリクエストにのみ適用されます。2つの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にアクセス制御が適用されます。

Header Type
特定のニーズに応じて、カスタムヘッダーブラックリストまたはホワイトリストを構成できます。

設定 説明
Blacklist ブラックリストを設定する場合、許可されないカスタムリクエストヘッダーとその対応する値を指定する必要があります:
Header Blacklist: 検証が必要なカスタムHTTPリクエストヘッダーの名前です。各ブラックリストにはヘッダー名が1つだけ含まれることに注意してください。
Header Value Blacklist: 禁止されたヘッダー値です。これらの値がリクエストに存在する場合、アクセスは拒否されます。; で区切って複数の禁止値を設定できます。
Whitelist ホワイトリストを設定する場合も、ブラックリストと同様に、許可されるカスタムリクエストヘッダーとそれに対応する値を指定する必要があります:
Header Whitelist: 検証が必要なカスタムHTTPリクエストヘッダーの名前です。同様に、各ホワイトリストにはヘッダー名が1つだけ含まれることができます。
Header Value Whitelist: 許可されたヘッダー値です。これらの値がリクエストに存在する場合のみアクセスが許可されます。;で区切って複数の許可値を設定できます。
Referer クライアントまたはサーバーから発信されるヘッダーの検証するかを決定できます。
Client: プリセットルールに準拠していることを確認するため、クライアント(例えばユーザーのブラウザーやアプリケーション)から発行されたリクエスト内の特定のHTTPヘッダーを検証します。
Server: プリセットルールに準拠していることを確認するために、サーバー(通常は顧客のオリジンサーバー)からのコンテンツ応答内の特定のレスポンスヘッダーを検証します。

システムは1つのカスタムヘッダーホワイトリストのみを許可し、それには1つのカスタムヘッダーのみを含むことができます。複数のカスタムヘッダーを含める必要がある場合は、カスタマーサービスに連絡してサポートを受けてください。

Action
指定されたルールを満たさないリクエストの扱い方を決めます:

  • Deny Access:検証に失敗したリクエストに対して403エラーを返します。
  • Redirect URL:検証に失敗したリクエストを指定されたURLにリダイレクトします。

Ignore Case
カスタムヘッダーブラックリストまたはホワイトリストが大文字と小文字を区別するかどうかを決定できます。 Yesに設定されている場合、リスト内の値は大文字と小文字を区別しません

Priority
複数のアクセス制御ルールが設定されている場合、CDN は数値に基づいて優先順位を決定し、数値が大きいルールを最初に実行します。

設定を完了したら、ConfirmをクリックしてからNextを選択し、設定を送信します。本番環境への中断を防ぐため、テスト環境でPre-deployし、設定の正確性を検証することをお勧めします。検証が完了したら、Deploy Nowをクリックして設定を本番環境に実装します。通常、3-5分以内に効果が現れます。Pre-deployテストに関する包括的なガイダンスと、設定の有効性を確認するには、チュートリアルDeploy the Configurations to Staging Environment for Validationを参照してください。

Best Practice

例1:カスタムヘッダーブラックリストの設定
クライアントリクエストに、key1またはkey2の値を持つヘッダーTest-Headerを含む場合、アクセスを拒否します。

例2:カスタムヘッダーホワイトリストの設定
クライアントリクエストに、key1またはkey2の値を持つヘッダーTest-Headerを含む場合のみ、アクセスを許可します。

注意事項

カスタムヘッダーブラックリストとホワイトリストを同時に設定しないでください。これは、すべてのCDNアクセスが拒否され、オンライン操作に影響を与える可能性があります。例えば、同じヘッダーにブラックリストとホワイトリストの設定がされている場合、すべてのリクエストが拒否される可能性があります。

なぜすべてのアクセスが拒否される可能性があるのか?

  1. リクエストに値が key1 のヘッダー Test-Header が含まれている場合、ブラックリストルールに一致し、アクセスが拒否されます。
  2. リクエストに値が key1 以外のヘッダー Test-Header が含まれている場合、ブラックリストによってブロックされることはありませんが、ホワイトリスト(値が key1 の Test-Header のみを許可)の条件に一致しないため、アクセスが拒否されます。

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