Referer ベースのホットリンク保護は、HTTP リクエストヘッダーの Referer フィールド (Referer ホワイトリストやブラックリストなど) を使用してアクセス制御を実施します。これにより、訪問者を識別・フィルタリングし、ウェブサイトリソースの不正利用を防止します。Referer ホワイトリストまたはブラックリストを設定すると、CDN は各リクエストをリストと照合し、アクセスを許可または拒否します。許可された場合、CDN はリソース URL を返します。拒否された場合、CDN は HTTP ステータスコード 403 を返します。このトピックでは、Referer ホットリンク保護の設定方法について説明します。
ApsaraVideo VOD では、Referer ホットリンク保護はデフォルトで無効になっています。これは、どのウェブサイトからでもリソースにアクセスできることを意味します。
ドメイン名を Referer ブラックリストまたはホワイトリストに追加すると、そのドメイン名に一致するワイルドカードドメイン名も自動的にブラックリストまたはホワイトリストに追加されます。 例えば、
aliyundoc.comを Referer ブラックリストまたはホワイトリストに追加すると、*.aliyundoc.comに一致するすべてのドメイン名に対して有効になります。Range リクエストの場合、ブラウザは 2 回目のリクエストで Referer ヘッダーを追加します。これらのリクエストを許可するには、ドメインを Referer ホワイトリストに追加してください。
ApsaraVideo VOD で Referer ホットリンク保護を有効にした後、ApsaraVideo VOD コンソールで動画をプレビューするには、Referer ホワイトリストに
vod.console.alibabacloud.comを追加してください。
Referer の構造
Referer ヘッダーは、HTTP リクエストのヘッダーセクションのコンポーネントであり、ソースアドレスに関する情報を含み、リクエストのソースを識別するために使用されます。Referer ヘッダーは、スキーム、ドメイン、パス、およびパラメーターで構成されます。次の図は、Referer ヘッダーの構造を示しています。
プロトコルとドメイン名は必須であり、パスとクエリパラメーターはオプションです。
Alibaba Cloud では、[スキームを無視] を選択することで、Referer としてドメイン名のみを指定できます。
利用シーン
Referer ブラックリストまたはホワイトリストは、次のシナリオに適しています。
著作権保護:ウェブサイト上の著作権で保護されたコンテンツを保護するために、Referer ブラックリストまたはホワイトリストを使用して、承認されたウェブサイトのみがコンテンツにアクセスできるようにすることができます。
ホットリンク保護:Referer ホワイトリストまたはブラックリストは、リソースが他のウェブサイトで使用されるのを防ぐことができます。
ウェブサイトのセキュリティ強化:Referer ホワイトリストに含まれるドメイン名のみがウェブサイトリソースへのアクセスを許可されます。これにより、悪意のあるホットリンクや機密情報の盗難を防ぎます。
トラフィックソース管理:リソースの使用を許可するドメインを管理できます。これにより、ウェブサイトのセキュリティと安定性が確保されます。
この機能は、さまざまなシナリオで使用して、ウェブサイトの資産を保護し、トラフィックを管理し、ウェブサイトのセキュリティを向上させることができます。
仕組み
サーバーは各リクエストの Referer フィールドをチェックし、リクエストの Referer フィールドが事前に設定されたホワイトリストと一致しない場合、リクエストを拒否します。これにより、帯域幅とサーバーリソースを節約できます。Alibaba Cloud CDN の Referer ルールは次のとおりです。
リクエストの Referer ヘッダーが Referer ブラックリストに含まれているか、Referer ホワイトリストに含まれていない場合、Alibaba Cloud CDN はリクエストを拒否します。
リクエストの Referer ヘッダーが Referer ホワイトリストに含まれている場合、Alibaba Cloud CDN はリクエストを許可します。
操作手順
ApsaraVideo VOD コンソールにログインします。
左側のナビゲーションウィンドウで、設定の管理 の下にある 配信の高速化設定 > ドメイン名 をクリックします。
ドメイン名 ページで、対象のドメイン名を見つけます。操作 列の 設定 をクリックします。
対象ドメインの左側のナビゲーションウィンドウで、RAM をクリックします。
[Referer ホットリンク保護] タブで、変更 をクリックします。
必要に応じて ブラックリスト または ホワイトリスト を選択します。
パラメーター
説明
タイプ
ブラックリスト
Referer フィールドが Referer ブラックリストにあるリクエストは、リソースにアクセスできません。
ホワイトリスト
Referer フィールドが Referer ホワイトリストにあるリクエストのみがリソースにアクセスできます。
説明ホワイトリストとブラックリストは相互排他的です。どちらか一方のリストのみ設定できます。
ルール
Referer ブラックリストまたはホワイトリストに複数のドメイン名を追加できます。ドメイン名は改行文字で区切ります。
アスタリスク (*) をワイルドカードとして使用して、すべてのドメイン名を照合できます。たとえば、
*.example.comはexample.comのすべてのサブドメインに一致します。アスタリスク (*) を省略して、ドメインとそのすべてのサブドメインを照合することもできます。たとえば、
example.comはexample.comと*.example.comに一致します。
説明[ルール] フィールドに入力する内容は 60 KB を超えることはできません。
ルールを設定する際にプロトコルを指定する必要はありません。
リダイレクト URL
リクエストがブロックされた場合、HTTP ステータスコード 302 と Location ヘッダーが返されます。このパラメーターは Location ヘッダーの値です。値は
http://またはhttps://で始まる必要があります (例:http://www.example.com)。高度
ユーザーがブラウザのアドレスバーからリソース URL に直接アクセスできるようにします。
デフォルトでは、このチェックボックスは選択されていません。このチェックボックスを選択すると、Referer ブラックリストまたはホワイトリストを設定しているかどうかに関係なく、空の Referer ヘッダーを含むリクエストが CDN リソースにアクセスできるようになります。
Referer ヘッダーがリクエストに含まれていません。
Referer ヘッダーは含まれていますが、値は空です。
完全一致
デフォルトでは、このオプションは選択されていません。選択した場合、ドメインのマッチングにワイルドカード (*) はサポートされなくなります。たとえば、
example.comはexample.comのみに一致し、そのサブドメインには一致しません。スキームを無視
[スキームを無視] を選択しない場合、Referer ヘッダーの値は http:// または https:// で始まる必要があります。
[スキームを無視] を選択した場合、Referer ヘッダーの値は http:// または https:// で始まる必要はありません。
OK をクリックして設定を完了します。
Referer のマッチングロジック
以下の表は、Referer のマッチングがどのように機能するかを示しています。リクエストがホワイトリストに一致しない場合、またはブラックリストに一致する場合、CDN はリクエストを拒否し、HTTP ステータスコード 403 を返します。
リスト設定 | リクエスト内の Referer | 一致結果 | マッチングロジック |
| http://www.example.com/img.jpg | はい | Referer ヘッダーのドメインがルールリストのエントリと一致します。 |
http://www.example.com:80/img.jpg | はい | ||
www.example.com | 詳細については、マッチングロジックの説明をご参照ください。 |
| |
http://aaa.example.com | はい | [完全一致] が選択されているかどうかに関係なく、結果は「はい」です。 | |
http://aaa.bbb.example.com | 説明を参照 |
| |
http://example.com | いいえ | Referer ヘッダーの第 2 レベルドメインがワイルドカードエントリと一致しません。ワイルドカードエントリには第 2 レベルドメイン自体は含まれません。 | |
http://www.example.net | 一致なし | リクエストはホワイトリストにもブラックリストにも一致しません。デフォルトでは、アクセスは許可されます。 |