Referer ベースのホットリンク防止は、HTTP リクエストヘッダーの Referer フィールド (Referer ホワイトリストやブラックリストなど) を使用してアクセスを制御します。これにより、訪問者を識別してフィルタリングし、ウェブサイトリソースの不正利用を防止します。Referer ホワイトリストまたはブラックリストを設定すると、CDN は各リクエストをリストと照合し、アクセスを許可または拒否します。許可された場合、CDN はリソース URL を返します。拒否された場合、CDN は HTTP ステータスコード 403 を返します。このトピックでは、Referer ホットリンク防止の設定方法について説明します。
ApsaraVideo VOD では、Referer ホットリンク防止はデフォルトで無効になっています。これは、どのウェブサイトからでもリソースにアクセスできることを意味します。
-
Referer リストに
aliyundoc.comのようなドメイン名を追加すると、CDN および はそのルールをドメイン自体とそのすべてのサブドメイン (例:*.aliyundoc.com) の両方に適用します。 Range リクエストの場合、ブラウザーは 2 回目のリクエストで Referer ヘッダーを追加します。これらのリクエストを許可するには、そのドメインを Referer ホワイトリストに追加する必要があります。
ApsaraVideo VOD で Referer ホットリンク防止を有効にした後、ApsaraVideo VOD コンソールでビデオをプレビューするには、Referer ホワイトリストに
vod.console.alibabacloud.comを追加してください。
Referer の構造
Referer ヘッダーは、リクエストの発生元となったページの URL を示します。次の図に示すように、Referer URL はスキーム、ドメイン、パス、クエリパラメーターで構成されます。
-
Referer ヘッダーの値は、本質的に URL です。
-
Alibaba Cloud は、ドメインのみの Referer 設定をサポートしています。これを有効にするには、スキームを無視 オプションを選択します。
利用シーン
Referer ブラックリストまたはホワイトリストは、主にウェブサイトのリソースが他のウェブサイトから直接リンクされたり使用されたりするのを防ぎます。一般的な利用シーンは次のとおりです。
-
著作権保護:著作権で保護されたコンテンツを持つウェブサイトの場合、Referer ホワイトリストを使用して、許可されたウェブサイトのみにアクセスを制限できます。
-
ホットリンク防止:ホワイトリストにより、特定ウェブサイトからのみリソースにアクセスできるようになり、他のサイトがコンテンツに直接リンクして帯域幅を消費するのを防ぎます。
-
ウェブサイトのセキュリティ強化:特定のウェブサイトのみにリソースへのアクセスを許可することで、悪意のあるホットリンク、不正アクセス、機密情報の盗難を防ぐことができます。
-
トラフィックソースの制御:特定のウェブサイトからのトラフィックを制限して、トラフィックソースを制御し、ウェブサイトの安定性とセキュリティを向上させることができます。
仕組み
POP (Point of Presence) は、各リクエストの Referer ヘッダーをチェックします。Referer がホワイトリストにない場合、またはブラックリストにある場合、POP はリクエストを拒否します。これにより、帯域幅が節約され、オリジンサーバーの負荷が軽減されます。CDN および は、次のルールを使用して Referer リクエストを処理します。
-
リクエストの Referer がブラックリストのエントリと一致する場合、またはホワイトリストのどのエントリとも一致しない場合、CDN および はリクエストを拒否します。
-
リクエストの Referer がホワイトリストのエントリと一致する場合、CDN および はリクエストを許可します。
手順
ApsaraVideo VOD コンソールにログインします。
左側のナビゲーションペインで、設定の管理 > 配信の高速化設定 > ドメイン名 の順にクリックします。
ドメイン名 ページで、対象のドメイン名を見つけます。操作 列で、設定 をクリックします。
対象ドメインの左側メニューで、RAM をクリックします。
[Refererホットリンク防止] タブで、変更 をクリックします。
必要に応じて、ブラックリスト または ホワイトリスト を選択します。
パラメーター
説明
[タイプ]
-
ブラックリスト
POP は、ブラックリストに含まれる Referer を含むリクエストへのアクセスを拒否します。
-
ホワイトリスト
POP は、ホワイトリストに含まれる Referer を含むリクエストのみを許可します。
説明ブラックリストとホワイトリストは相互排他的です。一度に 1 つのタイプしか選択できません。
[ルール]
-
複数の Referer を追加できます。各エントリは改行で区切ります。
-
アスタリスク (*) をワイルドカードとして使用して、すべてのサブドメインに一致させることができます。たとえば、
*.example.comはexample.comのすべてのサブドメインに一致します。 -
ワイルドカードを指定しない場合、エントリはドメイン自体とそのすべてのサブドメインの両方に一致します。たとえば、
example.comのエントリはexample.comと*.example.comの両方に一致します。
説明-
Referer リスト内のすべてのルールの合計サイズは 60 KB を超えることはできません。
-
ルールにスキームを含める必要はありません。
[リダイレクト URL]
リクエストがブロックされた場合、POP は Location レスポンスヘッダーとともに 302 リダイレクトを返します。このパラメーターは、Location ヘッダーの値を指定します。URL は
http://またはhttps://で始まる必要があります。例:http://www.example.com。[高度]
ユーザーがブラウザのアドレスバーからリソース URL に直接アクセスできるようにします。
このオプションはデフォルトでクリアされています。このオプションを選択すると、リストの設定に関係なく、空の Referer を持つリクエストはブロックされず、リソースへのアクセスが許可されます。
-
リクエストに Referer ヘッダーが含まれていない。
-
Referer ヘッダーの値が空である。
[完全一致]
デフォルトでは、このオプションは選択されていません。選択した場合、ドメイン照合ではワイルドカード (*) がサポートされなくなります。たとえば、
example.comはexample.comにのみ一致し、そのサブドメインには一致しません。[スキームを無視]
-
スキームを無視 オプションがクリアされている場合、Referer ヘッダーには HTTP または HTTPS スキームが含まれている必要があります。
-
スキームを無視 オプションを選択すると、Referer ヘッダーにスキームを含める必要はありません。
-
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 | 不一致 | Referer が設定されたどのルールにも一致しません。ホワイトリストが設定されている場合、このリクエストは拒否されます。ブラックリストが設定されている場合、このリクエストは許可されます。 |