验证Referer防盗链是否生效

在OSS配置Referer白名单来允许特定域名的网站可以访问OSS文件后,您可以使用curl命令测试设置的防盗链是否生效。

前提条件

配置Referer防盗链来阻止其他网站引用OSS文件

操作步骤

使用curl命令测试的三种场景如下:

说明

仅适用于公共访问的文件。如果是私有访问的文件,需要添加签名信息再进行访问。

白名单中的Referer

通过curl命令加参数-e,传递设置的白名单中Referer到访问地址,代表由http://www.aliyun.com网站传递的请求。

curl -e http://www.aliyun.com http://example****.oss-cn-hangzhou.aliyuncs.com/demo.txt

http://www.aliyun.com在白名单中,没有报错,系统直接打印demo.txt中的内容,证明白名单Referer设置生效。

demo

不在白名单中的Referer

通过curl命令加参数-e,传递不在白名单中的Referer到访问地址。

curl -e http://www.example.edu http://example****.oss-cn-hangzhou.aliyuncs.com/demo.txt

http://www.example.edu不在白名单中,系统报错,证明白名单Referer设置生效。

<?xml version="1.0" encoding="UTF-8"?>
<Error>
  <Code>AccessDenied</Code>
  <Message>You are denied by bucket referer policy.</Message>
  <RequestId>6566AC76E41FB93030CE****</RequestId>
  <HostId>example****.oss-cn-hangzhou.aliyuncs.com</HostId>
  <BucketName>example****</BucketName>
  <EC>0003-00000503</EC>
  <RecommendDoc>https://api.aliyun.com/troubleshoot?q=0003-00000503</RecommendDoc>
</Error>

空Referer

通过curl命令不加参数访问,代表通过浏览器直接打开URL。

curl http://example****.oss-cn-hangzhou.aliyuncs.com/demo.txt

由于设置了允许Referer为空,没有报错,系统直接打印demo.txt中的内容。

demo

相关文档

您还可以通过查看OSS日志中的实际访问记录来分析防盗链是否生效。具体操作,请参见访问对象存储OSS的过程中如何查询Object的访问和操作记录