リファラーベースのホットリンク保護とは、リファラーヘッダーに基づくアクセス制御を指します。 たとえば、特定のリクエストのみがリソースにアクセスできるようにリファラーホワイトリストを設定したり、特定のリクエストをブロックするブラックリストを設定したりできます。 リファラーベースのホットリンク保護は、ユーザー ID を識別してフィルタリングを実行し、リソースを不正アクセスから保護します。 リファラーホワイトリストまたはブラックリストを設定した後、Alibaba Cloud CDN はユーザーIDに基づいてリクエストを許可または拒否します。 リクエストが許可されている場合、Alibaba Cloud CDN はリクエストされたリソースのURLを返します。 それ以外の場合、Alibaba Cloud CDN はHTTP 403ステータスコードを返します。 このトピックでは、リファラーホワイトリストまたはブラックリストを設定してホットリンク保護を有効にする方法について説明します。
背景情報
Referer ヘッダーは、HTTP リクエストのヘッダーセクションの要素であり、プロトコル、ドメイン名、クエリ文字列など、ソースアドレスに関する情報が含まれています。 Refererヘッダーは、リクエストのソースを識別するために使用されます。
リファラーベースのホットリンク保護は、リソースを不正アクセスから保護するように設計されたサーバー側のアクセス制御メカニズムです。 ユーザーがWebサイトにアクセスしてリンクをクリックすると、ブラウザはHTTPリクエストヘッダーにRefererフィールドを自動的に追加します。このフィールドには、リクエストの送信元のページのURLが指定されます。
デフォルトでは、ApsaraVideo VODでリファラーベースのホットリンク保護は無効です。 つまり、すべてのWebサイトがリソースにアクセスできます。
ドメイン名をリファラーホワイトリストまたはブラックリストに追加すると、ドメイン名と一致するワイルドカードドメイン名が自動的にホワイトリストまたはブラックリストに追加されます。 たとえば、リファラーホワイトリストまたはブラックリストに
aliyundoc.com
を追加すると、* .aliyundoc.com
に一致するすべてのドメイン名に対してホットリンク保護が有効になります。Rangeリクエストがドメイン名から開始されると、ブラウザはRefererヘッダーを2番目のRangeリクエストに追加して、リクエストの参照ページを識別します。 後続のRangeリクエストがホットリンク保護によってブロックされないようにするには、ドメイン名をリファラーホワイトリストに追加します。
リファラーベースのホットリンク保護機能を有効にした後、ApsaraVideo VODコンソールでビデオをプレビューする場合は、リファラーホワイトリストに
vod.console.aliyun.com
を追加します。
シナリオ
リファラーホワイトリストまたはブラックリストは、次のシナリオに適しています。
著作権保護: Webサイトの著作権で保護されたコンテンツを保護するために、リファラーホワイトリストまたはブラックリストを使用して、許可されたWebサイトのみがコンテンツにアクセスできるようにします。
ホットリンク保護: リファラーホワイトリストまたはブラックリストを設定して、リソースが他のWebサイトで使用されないようにすることができます。
Webサイトのセキュリティ強化: 設定したリファラーホワイトリストに含まれるドメイン名のみ、Webサイトリソースへのアクセスが許可されます。 これにより、機密情報の悪意のあるホットリンクや盗難を防ぎます。
トラフィックソース管理: リソースの使用を許可されているドメインを管理できます。 これにより、Webサイトのセキュリティと安定性が保証されます。
さまざまなシナリオでAlibaba Cloud CDN のホットリンク保護機能を使用して、Webサイトの資産を保護し、トラフィックソースを管理し、Webサイトのセキュリティを向上させることができます。
制御ポリシー機能の動作
サーバーは各リクエストのRefererフィールドをチェックし、リクエストのRefererフィールドが信頼できるWebサイトの事前設定されたホワイトリストと一致しない場合、リクエストを拒否します。 これにより、他のWebサイトがWebサイトのリソースに直接リンクするのを防ぎ、帯域幅とサーバーリソースを節約できます。 リファラーホワイトリストまたはブラックリストを設定した後、Alibaba Cloud CDN は、リクエスト内のリファラーヘッダーとリファラールールに基づいてリクエストを許可するかどうかを決定します。
リクエストのリファラーヘッダーがリファラーブラックリストに含まれているか、リファラーホワイトリストに含まれていない場合、Alibaba Cloud CDN はリクエストを拒否します。
リクエストのリファラーヘッダーがリファラーホワイトリストに含まれている場合、Alibaba Cloud CDN はリクエストを許可します。
手順
ApsaraVideo VODコンソールにログインします。
左側のナビゲーションウィンドウで、構成管理をクリックします。
[ドメイン名] ページで、管理するドメイン名を見つけ、アクション の [設定] をクリックします。
左側のナビゲーションツリーで、[リソースアクセス制御] をクリックします。
[ホットリンク保護] タブで、[ホットリンク保護] セクションの [変更] をクリックします。
ビジネス要件に基づいて、Typeパラメーターにブラックリストまたはホワイトリストを指定します。
パラメーター
説明
タイプ
ブラックリスト
ブラックリストに含まれるドメイン名からのリクエストは、リソースにアクセスできません。
ホワイトリスト
ホワイトリストに含まれているドメイン名からのリクエストのみがリソースにアクセスできます。
説明ブラックリストとホワイトリストは相互に排他的です。 一度に設定できるリストのタイプは1つだけです。
ルール
リファラーホワイトリストまたはブラックリストに複数のドメイン名を追加できます。 1行につき1つのドメイン名を入力します。 ドメイン名の前にスペースを追加しないでください。
アスタリスク (*) をワイルドカードとして使用できます。 たとえば、
* .developer.aliyundoc.com
をホワイトリストまたはブラックリストに追加すると、image.developer.aliyundoc.com
とvideo.developer.aliyundoc.com
を照合できます。
説明[ルール] フィールドに入力する内容は、60 KBを超えることはできません。
リダイレクトURL
リクエストがブロックされると、HTTPステータスコード302の代わりにHTTPステータスコード403とLocationヘッダーが返されます。 このパラメーターは、Locationヘッダーの値です。 値は、
http://
またはhttps://
で始まる必要がありhttp://www.example.com
。詳細設定
ユーザーがブラウザのアドレスバーからリソース URL に直接アクセスできるようにします。
デフォルトでは、チェックボックスは選択されていません。 チェックボックスをオンにすると、リファラーホワイトリストとブラックリストのどちらを設定しても、空のリファラーヘッダーを含むリクエストはCDNリソースにアクセスできます。 空のRefererヘッダーは、次のいずれかのシナリオを示唆します。
Refererヘッダーはリクエストに含まれていません。
Refererヘッダーはリクエストに含まれていますが、値は空です。
完全一致
完全一致が選択されていない場合:
デフォルトでは、チェックボックスは選択されていません。
あいまい一致はサポートされていません。
接尾辞の一致がサポートされています。 ドメイン名の左側にピリオド (.) を追加しないでください。構成が配信されると、システムは自動的にドメイン名の左側にピリオド (.) を追加します。
ホワイトリストまたはブラックリストに
example.com
を追加すると、example.com
と<anyCharacte r>.example.com
が一致します。ホワイトリストまたはブラックリストに
a*b.example.com
を追加すると、<anyCharacte r>b.example.com
と<anyCharacter>.a<anyCharacte r>b.example.com
が一致します。
完全一致が選択されている場合:
完全一致はサポートされていますが、サブドメインは一致できません。
ホワイトリストまたはブラックリストに
example.com
を追加すると、example.com
のみが一致します。ホワイトリストまたはブラックリストに
a*b.example.com
を追加すると、一致するのは<anyCharacte r>b.example.com
のみです。
接尾辞の一致はサポートされていません。
スキームを無視
リファラーブラックリストまたはホワイトリストが設定されているかどうかに関係なく:
[スキームを無視] を選択せず、リファラーヘッダーの値がHTTPまたはHTTPSで始まらない場合、リファラーは無効と見なされます。 たとえば、
www.example.com
リファラーは無効です。https:// www.*.com
形式またはhttp:// www.*.com
形式のリファラーのみが有効です。[スキームを無視] を選択した場合、リクエストに含まれるリファラーヘッダーにHTTPまたはHTTPSヘッダーがない場合、リファラーは有効と見なされます。 たとえば、
www.example.com
リファラーは有効です。
OK をクリックします。
マッチングロジック
次の表に、Refererヘッダーの一致ロジックを示します。 リクエストのリファラーヘッダーがホワイトリストと一致しないか、ブラックリストと一致する場合、Alibaba Cloud CDN はリクエストを拒否し、HTTPステータスコード403を返します。
設定済みドメイン名 | リクエストのリファラーヘッダー値 | 一致? | 説明 |
| http://www.example.com/img.jpg | 必須 | リファラーヘッダーのドメイン名は、リファラーホワイトリストまたはブラックリストのドメイン名と一致します。 |
http://www.example.com:80/img.jpg | 必須 | ||
www.example.com | 説明列を参照してください。 |
| |
http://aaa.example.com | 必須 | 完全一致を選択したかどうかに関係なく、ドメイン名が一致します。 | |
http://aaa.bbb.example.com | 説明列を参照してください。 |
| |
http://example.com | 任意 | リファラーヘッダーのドメイン名が、リファラーホワイトリストまたはブラックリストのワイルドカードドメイン名と一致しません。 これは、ワイルドカードドメインがサブドメインと一致するが、ルートドメインをカバーしないためです。 | |
http://www.example.net | 一致するルールなし | リファラーヘッダーのドメイン名は、ブラックリストまたはホワイトリストに含まれていません。 したがって、リクエストはデフォルトのルールに従って許可されます。 |