referer(防盜鏈)
對象存儲OSS支持對存儲空間(Bucket)設置防盜鏈,即通過對訪問來源設置白名單的機制,避免OSS資源被其他人盜用。referer命令用于添加、修改、查詢、刪除Bucket的防盜鏈配置。
注意事項
要添加或修改防盜鏈配置,您必須具有
oss:PutBucketReferer
權限;要查看防盜鏈配置,您必須具有oss:GetBucketReferer
權限;要刪除防盜鏈配置,您必須具有oss:DeleteBucketReferer
權限。具體操作,請參見為RAM用戶授權自定義的權限策略。
從ossutil 1.6.16版本開始,命令行中Binary名稱支持直接使用ossutil,您無需根據(jù)系統(tǒng)刷新Binary名稱。如果您的ossutil版本低于1.6.16,則需要根據(jù)系統(tǒng)刷新Binary名稱。更多信息,請參見命令行工具ossutil命令參考。
關于防盜鏈的更多信息,請參見防盜鏈。
當您在OSS ON云盒中使用該命令時:
將配置文件中的Endpoint替換為云盒Endpoint。更多信息,請參見云盒Endpoint。
在本文已有示例的基礎上添加--sign-version、--region以及--cloudbox-id選項。關于這三個選項的具體用法,請參見通用選項。
添加或修改防盜鏈配置
如果Bucket此前未添加過防盜鏈配置,則使用該命令將為Bucket添加防盜鏈配置。如果Bucket此前已添加防盜鏈配置,則使用該命令將直接覆蓋已有的防盜鏈配置。
添加或修改防盜鏈配置的命令格式和示例如下:
命令格式
ossutil referer --method put oss://bucketname refererconfig [--disable-empty-referer]
參數(shù)及選項說明如下:
配置項
說明
bucketname
待添加或修改防盜鏈配置的Bucket名稱。
refererconfig
填寫域名或IP地址,支持通配符星號(*)和半角問號(?),多個Referer需以空格分隔。配置示例如下:
配置為
http://www.aliyun.com
時,可匹配http://www.aliyun.com/123、http://www.aliyun.com.cn等以http://www.aliyun.com為前綴的地址。配置為
*www.aliyun.com
,可匹配http://www.aliyun.com、https://www.aliyun.com等包含www.aliyun.com
的地址。通配符星號(*)表示使用星號代替0個或多個字符。例如配置為
*.aliyun.com
,可匹配http://bestwisewords.com、https://www.aliyun.com等地址。通配符半角問號(?)表示使用問號代替一個字符。
支持帶端口的域名或IP,例如https://www.example.com:8080、https://10.0.0.0:8080等地址。
--disable-empty-referer
選擇是否允許空Referer。
不添加此選項時,表示允許空Referer,即HTTP或HTTPS Header中不帶Referer字段或Referer字段為空。
添加此選項后,表示不允許空Referer,即HTTP或HTTPS Header中帶Referer字段且值不為空。
使用示例
為目標存儲空間examplebucket設置防盜鏈,允許域名為
www.aliyun.com
的網(wǎng)站引用OSS文件,不允許在瀏覽器中輸入URL直接訪問OSS文件。ossutil referer --method put oss://examplebucket http://www.aliyun.com https://www.aliyun.com --disable-empty-referer
為目標存儲空間examplebucket設置防盜鏈,允許域名為
www.aliyun.com
的網(wǎng)站引用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]
參數(shù)說明如下:
參數(shù)
說明
bucketname
待獲取防盜鏈配置的Bucket名稱。
local_xml_file
存放防盜鏈配置的本地文件名稱,例如
localfile.txt
。如果未指定此參數(shù),則防盜鏈配置將直接輸出到屏幕。使用示例
獲取存儲空間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****
關于此命令的其他通用選項的更多信息,請參見通用選項。