阿里雲團隊努力不懈,力求將最新的技術內容更快地以您最熟悉的語言呈現。本文由簡體中文內容自動轉碼而成,過程無人工干預。阿里雲不保證此自動轉碼的準確性、完整性及時效性。因轉碼造成的任何內容錯誤及因此可能帶來的損失,阿里雲概不負責,敬請見諒。本文内容請以簡體中文版本為準。
全部產品
Search
文件中心

防盜鏈

更新時間: Oct 19, 2018

OSS是按使用收費的服務,為了防止使用者在OSS上的資料被其他人盜鏈,OSS支援基於HTTP header中表頭欄位referer的防盜鏈方法。

設定Referer白名單

通過下面代碼設定Referer白名單:

  1. using Aliyun.OSS;
  2. var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
  3. var refererList = new List<string>();
  4. // 添加referer項
  5. refererList.Add("http://www.aliyun.com");
  6. refererList.Add("http://www.*.com");
  7. refererList.Add("http://www.?.aliyuncs.com");
  8. // 允許referer欄位為空,並設定儲存空間Referer列表
  9. var request = new SetBucketRefererRequest(bucketName, refererList);
  10. request. AllowEmptyReferer = true;
  11. client.setBucketReferer(bucketName, br);
  12. Console.WriteLine("設定儲存空間{0}的referer白名單成功", bucketName);

提示:

注意:

  • Referer參數支援萬用字元“*”和“?”,更多詳細的規則配置可以參考開發人員指南OSS防盜鏈

獲取Referer白名單

  1. using Aliyun.OSS;
  2. var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
  3. var rc = client.GetBucketReferer(bucketName);
  4. Console.WriteLine("allow?" + (rc.AllowEmptyReferer ? "yes" : "no"));
  5. if (rc.RefererList.Referers != null)
  6. {
  7. for (var i = 0; i < rc.RefererList.Referers.Length; i++)
  8. Console.WriteLine(rc.RefererList.Referers[i]);
  9. }
  10. else
  11. {
  12. Console.WriteLine("Empty Referer List");
  13. }

提示:

清空Referer白名單

Referer白名單不能直接清空,只能通過重新設定來覆蓋之前的規則。

  1. using Aliyun.OSS;
  2. var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
  3. // 預設允許referer欄位為空,且referer白名單為空。
  4. var request = new SetBucketRefererRequest(bucketName);
  5. client.SetBucketReferer(request);
  6. Console.WriteLine("清空儲存空間{0}的referer白名單成功", bucketName);