User-Agent Access Rules

最終更新日:2024-07-17 17:28:44

クライアントがWebサーバーにリクエストを送信する際、通常、リクエストの送信元デバイスとブラウザを識別する User-Agent ヘッダーが送信されます。このヘッダーには、オペレーティング システムとバージョン、およびブラウザの種類とバージョンの詳細が含まれます。したがって、このヘッダーに基づいてアクセス制御が実行できます。CDNエッジサーバーがクライアントリクエストを受信すると、HTTPリクエストヘッダーのUser-Agentフィールドの情報を確認し、特定のルールに準拠するユーザーリクエストを許可または拒否します。

User-Agentアクセスルールは以下のシナリオに適しています:

  • コンテンツが特定のブラウザによってのみアクセスが許可される場合、例えばInternet Explorerのみを許可しChromeからのアクセスを拒否する場合、User-Agent盗難防止を使用できます。
  • 高速化されたドメインが特定のクライアントによってのみアクセスが許可される場合、例えば専用クライアントがリクエストを送信する際に特定のUser-Agent情報を持っている場合、User-Agentアクセスルールを使用できます。

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

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

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

設定 説明
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にアクセス制御が適用されます。

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

設定 説明
User-Agent Blacklist HTTPリクエストヘッダーのUser-Agentがブラックリストと一致する場合、そのユーザーのアクセスは拒否されます。
User-Agent Whitelist HTTPリクエストヘッダーのUser-Agentがホワイトリストと一致する場合のみ、ユーザーはコンテンツへのアクセスを許可されます。

ヒント
User-Agentのブラックリストとホワイトリストには複数の値を含めることができ、改行で区切る必要があります。
システムはホワイトリストルール1つのみをサポートします。複数のUser-Agent値が必要な場合は、これらすべてをこの単一のホワイトリストに含める必要があります。

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

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

Ignore Case
ブラックリストまたはホワイトリストのルールで大文字と小文字を区別するかどうかを設定できます。Yesに設定すると、リスト内の値は大文字と小文字を区別しません。例えば、ホワイトリストにChrome/123.0.0.0が許可されている場合、User-AgentがChrome/123.0.0.0またはchrome/123.0.0.0であるリクエストは許可されます。

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

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

注意事項

User-Agentのブラックリストとホワイトリストを同時に設定しないでください。これはCDNへのアクセスが全て拒否され、オンライン操作に影響を与える可能性があるためです。例えば、以下のようにUser-Agentのブラックリストとホワイトリストの両方を設定すると、すべてのアクセスが拒否されます。

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

  1. リクエストのUser-AgentがChrome/123.0.0.0を持っている場合、それはUser-Agentブラックリストに一致するため、アクセスが拒否されます。
  2. 逆に、User-Agent がChrome/123.0.0.0を持たないリクエストは、ブラックリストによって拒否されませんが、ホワイトリスト(User-Agent が Chrome/123.0.0.0を持つリクエストのみを許可する)の要件を満たさず、拒否されます。

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