概要
悪意のあるプログラムがリソースのURLを利用してパブリックネットワークのトラフィックを盗んだり、悪意のある手法でリソースを盗み、ユーザーに不要な損失を与えたりすることを防ぐためのものです。Tencent Cloud COSは、リンク不正アクセス防止の設定をサポートしています。コンソールのリンク不正アクセス防止の設定から、ブラックリスト/ホワイトリストを設定することをお勧めします。
注意:
オブジェクトへのアクセスの際に署名(URLとHeaderのどちらでも)があれば、リンク不正アクセス防止の検証は行われません。
リンク不正アクセス防止を設定する際、大きなファイルをチャンクに分割するリクエストがあるシナリオの場合、ご自身のドメイン名をリンク不正アクセス防止のホワイトリストに追加することができます。
利用方法
オブジェクトストレージコントロールパネルを使用する
1. COSコンソールにログインし、左側メニューバーの【バケットリスト】をクリックし、バケットリストページに進みます。 2. リンク不正アクセス防止を設定したいバケットを見つけ、そのバケット名をクリックし、バケット管理ページに進みます。
3. 【セキュリティ管理】>【リンク不正アクセス防止の設定】をクリックしてリンク不正アクセス防止の設定を見つけ、【編集】をクリックして編集可能状態にします。
4. 現在のステータスを有効に変更し、リストタイプ(ブラックリストまたはホワイトリスト)を選択し、Referer設定項目にブラックリストまたはホワイトリストに追加する必要があるドメイン名またはIPアドレスを入力します。問題がなければ保存をクリックして完了です。設定項目の説明は以下の通りです:
ブラックリスト:この項目を選択すると、Refererに指定されたドメイン名またはIPアドレスがバケットのデフォルトアクセスアドレスへのアクセスを拒否され、403エラーが返されます。
ホワイトリスト:この項目を選択すると、Refererに指定されたドメイン名またはIPアドレスがバケットのデフォルトアクレスアドレスへのアクセスを許可され、他のドメイン名またはIPアドレスはバケットのデフォルトアクセスアドレスへのアクセスを拒否され、403エラーが返されます。
空のreferer:headerに空のrefererが含まれるHTTPリクエストです(refererrフィールドがない、またはrefererフィールドが空の場合)。
Referer:最大10個のドメイン名の設定で、かつ同じプレフィックスマッチングをサポートします。1個につき1行、複数個の場合は行替えします。ドメイン名、IP、ワイルドカード*などの形式のアドレスがサポートされています。事例は次のとおりです。
www.example.comの設定:www.example.com/123、www.example.com.cnなど、www.example.comがプレフィックスであるアドレスを制限することができます。
ポート付きのドメイン名とIPをサポートします。例えば、www.example.com:8080、10.10.10.10:8080などのアドレスです。
*.example.comの設定:a.b.example.com/123、a.example.comなどのアドレスを制限することができます。
説明:
CDNドメイン名を通じてアクセスを加速する場合、まずCDNの盗用防止設定を優先的に実行し、その後オブジェクトストレージの盗用防止ルールを実行します。 REST API/SDKを使用
以下のAPIで盗難リンク防止を設定できます:
SDKを直接呼び出して盗難リンク防止を設定できます。詳細は以下の各言語SDKドキュメントをご参照ください:
Android, C, C++, .NET(C#), Go, iOS, Java, JavaScript, Node.js, PHP, Python,ミニプログラム。 事例
APPIDは、1250000000のユーザー用にexamplebucket-1250000000という名前のバケットを作成し、ルートディレクトリに画像picture.jpgを配置します。COSは、ルールに従ってデフォルトのアクセスアドレスを発行します。
examplebucket-1250000000.file.myqcloud.com/picture.jpg
ユーザーAの所有ウェブサイト:
トップページのindex.htmlにこの画像を埋め込みます。
この時点のウェブマスターBの所有ウェブサイト:
ウェブマスターBはこの画像をwww.fake.comに保存したいと考えています。しかしトラフィック料金を払いたくないので、以下のアドレスのpicture.jpgを直接引用し、それをwww.fake.comサイトのトップページindex.htmlに配置しました。
examplebucket-1250000000.file.myqcloud.com/picture.jpg
上記のような場合、ユーザーAの損失を回避するため、リンク不正アクセス防止を有効にする方法を2種類提供しています。
有効化方法1
ブラックリストモードを設定し、ドメイン名の設定に*.fake.comを入力し、保存すると有効になります。
有効化方法2
ホワイトリストモードを設定し、ドメイン名の設定に*.example.comと入力し、保存すると有効になります。
有効化前
http://www.example.com/index.htmlにアクセスすると、画像は正常に表示されます。
http://www.fake.com/index.htmlにアクセスしても、画像は正常に表示されます。
有効化後
http://www.example.com/index.htmlにアクセスすると、画像は正常に表示されます。
http://www.fake.com/index.htmlにアクセスすると、画像は表示できません。
ミニプログラムに関する説明
1. ミニプログラムのネットワークリクエストのreferer は、https://servicewechat.com/{appid}/{version}/page-frame.htmlという形式に固定されています。
2. バケットでリンク不正アクセス防止の制限が有効化されており、ミニプログラムがCOS画像をロードできるようにする必要がある場合は、COSコンソールでリンク不正アクセス防止のホワイトリスト「servicewechat.com」を設定してください。