阿里云OSS 防盗链,目前,只有通过OSS


阿里云OSS是按使用收费的服务,为了防止用户在 OSS 上的数据被其他人盗链,OSS 支持基于 HTTP header 中表头字段 referer 的防盗链方法。目前,只有通过OSS 的控制台可以对一个 bucket 设置 referer 字段的白名单和是否允许 referer 字段为空的请求访问。

例如,对于一个名为 oss-amznz 的bucket,设置其 referer 白名单为 http://www.amznz.com 则所有 referer 为 http://www.amznz.com 的请求才能访问 oss-amznz 这个 bucket 中的 Object。

细节分析:

用户只有通过 URL 签名或者匿名访问 Object 时,才会做防盗链验证。请求的 Header 中有“Authorization”字段的,不会做防盗链验证。一个 bucket 可以支持多个 referer 参数,这些参数之间由“,”号分隔。Referer 参数支持通配符“*”和“?”。用户可以设置是否允许 referer 字段为空的请求访问。白名单为空时,不会检查 referer 字段是否为空(不然所有的请求都会被拒绝)。白名单不为空,且设置了不允许 referer 字段为空的规则;则只有 referer 属于白名单的请求被允许,其他请求(包括 referer 为空的请求)会被拒绝。如果白名单不为空,但设置了允许 referer 字段为空的规则;则 referer 为空的请求和符合白名单的请求会被允许;其他请求都会被拒绝。Bucket 的三种权限(private,public-read,public-read-write)都会检查 referer字段。

阿里云 防盗链 白名单 refer为空 referer OSS aliyun

星号“*”:
可以使用星号代替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。

不允许Refer为空 可能有些人搞不明白,简单说就是直接在浏览器中输入图片URL,refer为空;从网页中点击打开图片则refer不为空。

原文地址: http://www.amznz.com/aliyun-oss-referer/

相关内容