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

您可以通過OSS管理主控台或者API的方式對一個Bucket設定referer欄位的白名單和是否允許referer欄位為空的請求訪問。

例如,對於一個名為oss-example的Bucket,設定其referer白名單為http://www.aliyun.com/。則所有referer為http://www.aliyun.com/的請求才能訪問oss-example這個Bucket中的Object。

細節分析

  • 用戶只有通過URL簽名或者匿名訪問Object時,才會做防盜鏈驗證。請求的Header中有“Authorization”欄位的,不會做防盜鏈驗證。
  • 一個Bucket可以支援多個referer參數。通過控制台設定時通過回車作為分行符號分隔,通過API設定時通過逗號“,”分隔。
  • Referer參數支援萬用字元“*”和“?”。
  • 用戶可以設定是否允許referer欄位為空的請求訪問。
  • 白名單為空時,不會檢查referer欄位是否為空(不然所有的請求都會被拒絕)。
  • 白名單不為空,且設定了不允許referer欄位為空的規則;則只有referer屬於白名單的請求被允許,其他請求(包括referer為空的請求)會被拒絕。
  • 如果白名單不為空,但設定了允許referer欄位為空的規則;則referer為空的請求和符合白名單的請求會被允許;其他請求都會被拒絕。
  • Bucket的三種許可權(private,public-read,public-read-write)都會檢查referer欄位。

萬用字元詳解

  • 星號“*”:可以使用星號代替0個或多個字元。如果正在尋找以AEW開頭的一個檔案,但不記得檔案名其餘部分,可以輸入AEW*,尋找以AEW開頭的所有檔案類型的檔案,如AEWT.txt、AEWU.EXE、AEWI.dll等。要縮小範圍可以輸入AEW*.txt,尋找以AEW開頭的所有檔案類型並以.txt為副檔名的檔案如AEWIP.txt、AEWDF.txt。
  • 問號“?”:可以使用問號代替一個字元。如果輸入love?,尋找以love開頭的一個字元結尾檔案類型的檔案,如lovey、lovei等。要縮小範圍可以輸入love?.doc,尋找以love開頭的一個字元結尾檔案類型並以.doc為副檔名的檔案如lovey.doc、loveh.doc。

功能使用參考