开发者社区> 问答> 正文

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。

细节分析
1) 用户只有通过 URL 签名或者匿名访问 Object 时,才会做防盗链验证。请求的 Header 中有“Authorization”字段的,不会做防盗链验证。
2) 一个 bucket 可以支持多个 referer 参数,这些参数之间由“,”号分隔。
3) Referer 参数支持通配符“*”和“?”。
4) 用户可以设置是否允许 referer 字段为空的请求访问。
5) 白名单为空时,不会检查 referer 字段是否为空(不然所有的请求都会被拒绝)。
6) 白名单不为空,且设置了不允许 referer 字段为空的规则;则只有 referer 属于白名单的请求被允许,其他请求(包括 referer 为空的请求)会被拒绝。
7) 如果白名单不为空,但设置了允许 referer 字段为空的规则;则 referer 为空的请求和符合白名单的请求会被允许;其他请求都会被拒绝。
8) 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。

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


展开
收起
mrznz 2013-04-13 11:59:12 9026 0
5 条回答
写回答
取消 提交回答
  • 回 4楼(rzxme) 的帖子
    这种情况 可以直接填写
    *.domain.xxx
    2013-04-15 14:21:48
    赞同 展开评论 打赏
  • ReOSS防盗链设置实例
    需要  区别填写  http和https吗?
    谷歌有很多 https 形式的。

    -------------------------

    回5楼mrznz的帖子
    恩,谢谢,真希望能出现一份公共的,值得信任的白名单清单
    2013-04-15 13:57:46
    赞同 展开评论 打赏
  • 谢谢分享。
    2013-04-15 12:00:11
    赞同 展开评论 打赏
  • ReOSS防盗链设置实例
    必须要仿盗链~
    2013-04-15 01:29:27
    赞同 展开评论 打赏
  • ReOSS防盗链设置实例
    防盗链省资源~~
    2013-04-13 12:30:55
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
OSS运维进阶实战手册 立即下载
《OSS运维基础实战手册》 立即下载
OSS运维基础实战手册 立即下载