全部產品
Search
文件中心

Object Storage Service:referer(防盜鏈)

更新時間:Jul 31, 2024

Object Storage Service支援對儲存空間(Bucket)設定防盜鏈,即通過對訪問來源設定白名單的機制,避免OSS資源被其他人盜用。referer命令用於添加、修改、查詢、刪除Bucket的防盜鏈配置。

注意事項

  • 要添加或修改防盜鏈配置,您必須具有oss:PutBucketReferer許可權;要查看防盜鏈配置,您必須具有oss:GetBucketReferer許可權;要刪除防盜鏈配置,您必須具有oss:DeleteBucketReferer許可權。具體操作,請參見為RAM使用者授權自訂的權限原則

  • 從ossutil 1.6.16版本開始,命令列中Binary名稱支援直接使用ossutil,您無需根據系統重新整理Binary名稱。如果您的ossutil版本低於1.6.16,則需要根據系統重新整理Binary名稱。更多資訊,請參見命令列工具ossutil命令參考

  • 關於防盜鏈的更多資訊,請參見防盜鏈

添加或修改防盜鏈配置

如果Bucket此前未添加過防盜鏈配置,則使用該命令將為Bucket添加防盜鏈配置。如果Bucket此前已添加防盜鏈配置,則使用該命令將直接覆蓋已有的防盜鏈配置。

添加或修改防盜鏈配置的命令格式和樣本如下:

  • 命令格式

    ossutil referer --method put oss://bucketname refererconfig [--disable-empty-referer]

    參數及選項說明如下:

    配置項

    說明

    bucketname

    待添加或修改防盜鏈配置的Bucket名稱。

    refererconfig

    填寫網域名稱或IP地址,支援萬用字元星號(*)和半形問號(?),多個Referer需以空格分隔。配置樣本如下:

    • 配置為http://www.aliyun.com時,可匹配http://www.aliyun.com/123http://www.aliyun.com.cn等以http://www.aliyun.com為首碼的地址。

    • 配置為*www.aliyun.com,可匹配http://www.aliyun.comhttps://www.aliyun.com等包含www.aliyun.com的地址。

    • 萬用字元星號(*)表示使用星號代替0個或多個字元。例如配置為*.aliyun.com,可匹配https://help.aliyun.comhttps://www.aliyun.com等地址。

    • 萬用字元半形問號(?)表示使用問號代替一個字元。

    • 支援帶連接埠的網域名稱或IP,例如https://www.example.com:8080https://10.0.0.0:8080等地址。

    --disable-empty-referer

    選擇是否允許空Referer。

    • 不添加此選項時,表示允許空Referer,即HTTP或HTTPS Header中不帶Referer欄位或Referer欄位為空白。

    • 添加此選項後,表示不允許空Referer,即HTTP或HTTPS Header中帶Referer欄位且值不為空白。

  • 使用樣本

    為目標儲存空間examplebucket設定防盜鏈,允許網域名稱為www.aliyun.com的網站引用OSS檔案,不允許在瀏覽器中輸入URL直接存取OSS檔案。

    ossutil referer --method put oss://examplebucket http://www.aliyun.com https://www.aliyun.com --disable-empty-referer

    為目標儲存空間examplebucket設定防盜鏈,允許網域名稱為www.aliyun.com的網站引用OSS檔案,並且允許在瀏覽器中輸入URL直接存取OSS檔案。

    ossutil referer --method put oss://examplebucket http://www.aliyun.com https://www.aliyun.com

    以下輸出結果表明已成功添加防盜鏈配置。

    0.134839(s) elapsed

查看防盜鏈配置

  • 命令格式

    ossutil referer --method get oss://bucketname [local_xml_file]

    參數說明如下:

    參數

    說明

    bucketname

    待擷取防盜鏈配置的Bucket名稱。

    local_xml_file

    存放防盜鏈配置的本地檔案名稱,例如localfile.txt。如果未指定此參數,則防盜鏈配置將直接輸出到螢幕。

  • 使用樣本

    • 擷取儲存空間examplebucket的防盜鏈配置,並將配置結果寫入本地檔案localfile.txt

      ossutil referer --method get oss://examplebucket localfile.txt

      以下輸出結果表明已成功擷取防盜鏈配置。

      0.212407(s) elapsed
    • 擷取儲存空間examplebucket的防盜鏈配置,並將配置結果直接輸出螢幕。

      ossutil referer --method get oss://examplebucket

      以下輸出結果表明examplebucket的防盜鏈配置中,僅HTTP或HTTPS Header中與*www.aliyun.com匹配的請求允許訪問examplebucket,且不允許空Referer。

      <?xml version="1.0" encoding="UTF-8"?>
        <RefererConfiguration>
            <AllowEmptyReferer>false</AllowEmptyReferer>
            <RefererList>
                <Referer>*www.aliyun.com</Referer>
            </RefererList>
        </RefererConfiguration>
      
      
      0.080482(s) elapsed

刪除防盜鏈配置

  • 命令格式

    ossutil referer --method delete oss://bucketname

    bucketname表示待刪除防盜鏈配置的Bucket名稱。

  • 使用樣本

    刪除儲存空間examplebucket的防盜鏈配置。

    ossutil referer --method delete oss://examplebucket

    以下輸出結果表明已成功刪除防盜鏈配置。

    0.212409(s) elapsed

通用選項

當您需要通過命令列工具ossutil切換至另一個地區的Bucket時,可以通過-e選項指定該Bucket所屬的Endpoint。當您需要通過命令列工具ossutil切換至另一個阿里雲帳號下的Bucket時,可以通過-i選項指定該帳號的AccessKey ID,並通過-k選項指定該帳號的AccessKey Secret。

例如您需要為另一個阿里雲帳號下,華東1(杭州)地區下名為testbucket的儲存空間設定防盜鏈,命令如下:

ossutil referer --method put oss://testbucket www.alibabacloud.com -e oss-cn-hangzhou.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA****  -k 67DLVBkH7EamOjy2W5RVAHUY9H****

關於此命令的其他通用選項的更多資訊,請參見通用選項