文档首页/ 对象存储服务 OBS/ 用户指南/ 数据安全/ 配置防盗链防止非法流量盗用
更新时间:2026-07-13 GMT+08:00
分享

配置防盗链防止非法流量盗用

OBS提供同时支持允许白名单访问和阻止黑名单访问的配置,防止盗链。

使用场景

一些不良网站为了不增加成本而扩充自己站点内容,经常盗用其他网站的链接。一方面损害了原网站的合法利益,另一方面又加重了服务器的负担。因此,产生了防盗链技术。

在HTTP协议中,通过表头字段referer,网站可以检测目标网页访问的来源网页。有了referer跟踪来源,就可以通过技术手段来进行处理,一旦检测到来源不是本站即进行阻止或者返回指定的页面。防盗链就是通过设置Referer,去检测请求来源的referer字段信息是否与白名单或黑名单匹配,如果与白名单匹配成功则允许请求访问,否则阻止请求访问或返回指定页面。

为了防止用户在OBS的数据被其他人盗链,OBS支持基于HTTP header中表头字段referer的防盗链方法。OBS同时支持访问白名单和访问黑名单的设置。

Referer规则

  • 白名单Referer/黑名单Referer输入的字节数不能超过1024个字符。
  • Referer格式:
    • Referer可以设置多个,多个Referer换行隔开;
    • Referer参数支持通配符(*)和问号(?),通配符可代替0个或多个字符,问号可代替单个字符;
    • 如果下载时Referer头域包含了http或https,则Referer设置必须包含http或https。
  • 白名单Referer为空,黑名单Referer不空时,允许所有黑名单中指定网站以外的其他网站的请求访问目标桶中的数据。
  • 白名单Referer不为空,黑名单Referer为空或不空时,允许在白名单且不在黑名单中的网站的请求访问目标桶中的数据。
  • 当白名单Referer与黑名单Referer内容有交集时,交集部分Referer被禁止。例如:当白名单Referer与黑名单Referer输入框中的referer字段都有“https://www.example.com”时,系统是阻止该网站的请求访问的。
  • 黑名单Referer与白名单Referer都为空时,默认允许所有网站的请求访问目标桶中的数据。
  • 判断用户是否有对桶及其内容访问的四种权限(读取权限、写入权限、ACL读取权限、ACL写入权限)之前,需要首先检查是否符合referer字段的防盗链规则。
  • Referer配置支持泛域名。

注意事项

  • 存在绕过CDN缓存的风险:如果OBS桶同时配置了防盗链和CDN加速域名,则当盗链请求访问OBS时,可能会由于CDN中缓存了请求的内容而导致请求直接命中CDN缓存节点并获得内容,从而绕过了OBS的防盗链配置。为确保防护体系完整有效,必须在CDN侧也配置防盗链规则。详情请参见配置防盗链规则拦截/放行指定Referer
  • 会受浏览器Referrer-Policy策略的影响:现代浏览器支持Referrer-Policy响应头,网站可通过该标头控制跨域请求中发送Referer的发送策略。当使用某些策略(如:no-referrer)时,浏览器将不发送Referer信息,OBS会将其视为空Referer处理,在配置防盗链时需要考虑此种情况(配置白名单Referer时,打开“允许空Referer”开关)。
  • 需要考虑视频播放的兼容性:浏览器原生<video>标签播放视频时,会向视频服务器发起请求获取媒体数据。由于这些请求的Referer可能为空或指向其他页面,OBS必须允许空Referer访问(配置白名单Referer时,打开“允许空Referer”开关),否则视频将无法正常播放。

前提条件

已经配置了静态网站托管。

使用方式

OBS支持通过管理控制台、API方式配置防盗链,不支持通过SDK、OBS Browser+、obsutil方式配置防盗链。

相关文档