开发者社区> 鸣镝> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

OSS防盗链(Referer)配置及错误排除

简介: OSS防盗链配置及错误排除
+关注继续查看

什么是Referer

Referer是HTTP Header的一部分,当浏览器向Web服务器发送请求时,一般会带上Referer,告诉服务器从哪个页面链接过来的。
Referer其实应该是单词Referrer,不过拼错的人太多了,编写标准的人也就将错就错了。

Referer的作用

  • 防盗链。比如,网站访问自己的图片服务器,图片服务器取到Referer来判断是不是自己的域名,如果是就继续访问,不是则拦截。
  • 数据统计。比如,统计用户是从哪里链接过来访问的。

Referer为空

空Referer指的是HTTP请求中Referer头部的内容为空,或者HTTP请求中不包含Referer头部。

下面两种情况Referer为空:

  • 当请求并不是由链接触发产生。比如,直接把地址输入地址栏里打开页面;
  • 从https页面上的链接访问到非加密的http页面时,在http页面上是检查不到Referer的。

在防盗链设置中,允许空Referer和不允许空Referer有什么区别呢?
在防盗链的白名单设置中,如果指名白名单中包含空的Referer,那么通过浏览器地址栏直接访问该资源URL是可以访问到的;
但如果不指名需要包含空的Referer,那么通过浏览器直接访问也是被禁止的。

OSS防盗链

OSS防盗链是通过Referer来实现的,所以也简称为Referrefer,详细说明请参见 OSS防盗链

OSS防盗链配置

OSS防盗链包括:

  • 是否允许Referer字段为空的请求访问;
  • Referer字段白名单。

OSS防盗链通过在 控制台SDK 设置bucket属性来配置。

OSS防盗链注意点

OSS防盗链配置中有以下注意点:

  • 用户只有通过URL签名或者匿名访问Object时,才会做防盗链验证。请求Header中有Authorization字段时,不会做防盗链验证;
  • 一个Bucket可以支持多个Referer参数,这些参数之间由,分隔;
  • Referer参数支持通配符*?,详细解释参见下面的通配符说明;
  • 用户可以设置是否允许Referer字段为空的请求访问;
  • 白名单为空时,不会检查Referer字段是否为空(不然所有的请求都会被拒绝);
  • 白名单不为空,且设置了不允许Referer字段为空的规则;则只有Referer属于白名单的请求被允许,其它请求(包括Referer为空的请求)会被拒绝;
  • 如果白名单不为空,但设置了允许Referer字段为空的规则;则Referer为空的请求和符合白名单的请求会被允许;其它请求都会被拒绝;
  • 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:允许refer为空
    • Refer列表: 空
  • 带规定的Referer的请求才能访问

  • 带规定的Referer的请求、不带Referer的请求可以访问

常见错误

错误

当Referer配置错误时,HTTP状态码(http code)是403,OSS返回如下错误:

<Code>AccessDenied</Code>
<Message>You are denied by bucket referer policy.</Message>  

提示:

  • Referer报错一般是站点类应用,浏览器中可以查看Header的Referer。如Chrome,按 F12 打开 开发者工具 ,在 Network 中查看相应元素的Header;
  • OSS返回的错误可以通过抓包获取。如Wireshark,筛选器可以指定为 host bucket-name.oss-cn-beijing.aliyuncs.com

其它错误的排除请参看 常见错误及排除

排除

可能的问题:

  • Referer为空,请求Header中没有Referer字段或者Referer字段为空。
  • Referer不在规定的Referer范围内。以下几点请注意:

    • http://还是https://配置时请确认;
    • a.aliyun.com和b.aliyun.com,匹配于http://*.aliyun.comhttp://*.aliyun.com
    • domain.com匹配于http://domain.com,而不是http://*.domain.com
  • Referer格式错误,Refer配置必须带http://或者https://,否则无效。如b.aliyun.com是无效配置。

提示:

  • 对象存储OSS -> Bucket -> Bucket属性 -> 防盗链 中配置Referer;
  • 调试时请清空浏览器缓存;
  • OSS的Refer只支持 白名单暂时不支持黑名单

其它问题

  • 设置防盗链后,用curl还是能抓到视频?

    检查是否开启了CDN、CDN的Refer设置不为空、CDN的防盗链名单与OSS一致。CDN设置防盗链请参考 防盗链。调试OSS的Referer时,请先排除CDN的影响。先调好OSS的Referer,再调CDN的Referer。

Referer更详细的介绍及配置请参见 防盗链

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
访问 OSS 这类对象存储最快的方式- JindoFS SDK |学习笔记
快速学习 访问 OSS 这类对象存储最快的方式- JindoFS SDK
107 0
第1期:一图了解阿里云对象存储OSS
阿里云对象存储OSS是一款海量,安全,低成本,高可靠的云存储服务。跟着阿里云内容设计中心来一起了解一下OSS吧~
320 0
阿里云OSS对象存储服务上传失败问题之一
OSS是阿里云提供一个对象存储服务,有着稳定高效的特点,但在操作时有些问题还是必须要注意一下的
610 0
一文了解阿里云对象存储OSS
对象存储OSS是什么? 对象存储服务(Object Storage Service,简称 OSS),以 HTTP RESTful API 的形式对外提供服务,是阿里云提供的海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面覆盖从热到冷的各种数据,优化存储成本。其数据可靠性不低于 99.9999999999%(12 个 9),服务可用性
7549 0
一分钟了解阿里云产品:对象存储OSS概述
阿里云的产品种类繁多,今天让我们一起来了解下对象存储(Object Storage Service,简称OSS)吧!
1320 0
三大场景,对象存储OSS带你快速上云
本文介绍对象存储OSS的主要应用场景。 图片和音视频等应用的海量存储 OSS可用于图片、音视频、日志等海量文件的存储。
2555 0
基于对象存储 OSS 的智能数据分析处理框架和功能
今年参加了 2019 全球闪存峰会(Flash Memory World),分享了“基于云存储的智能数据分析处理架构”,重点介绍在对象存储 OSS 之上的数据处理功能,现整理相关内容和大家探讨。
2493 0
对象存储 OSS 常见问题
本文列举了阿里云对象存储 OSS 的常见问题,帮助您快速了解 OSS。
8967 0
如何设置对象存储OSS静态网站托管功能?
今天为大家介绍一下如何设置OSS的默认页面。OSS的静态网站托管功能,主要是允许客户将一个.html的静态文件上传到bucket中作为bucket外网域名访问的一个特定页面。 接下来,我们登录控制台给大家详细介绍一下设置方法。
3295 0
【答疑】对象存储OSS常见问题解答(SDK类2)
1.客户在使用OSS java SDK 上传时发现卡死。解答:原因是连接池中连接泄漏,可能是使用ossObject后没有关闭。云栖社区里有一篇文章详细介绍了这个问题: https://yq.aliyun.
1475 0
+关注
鸣镝
Alibaba Cloud OSS SDK/Tools Developer
25
文章
27
问答
来源圈子
更多
阿里云存储基于飞天盘古2.0分布式存储系统,产品包括对象存储OSS、块存储Block Storage、共享文件存储NAS、表格存储、日志存储与分析、归档存储及混合云存储等,充分满足用户数据存储和迁移上云需求,连续三年跻身全球云存储魔力象限四强。
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载