阿里云首页

设置OSS防盗链后访问OSS资源出现“You are denied by bucket referer policy”错误

问题描述

为避免阿里云OSS资源被其他人盗用,在设置OSS防盗链后,访问Bucket某个资源URL的时,访问出现以下报错。

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

问题原因

报错原因是该Bucket设置了防盗链,而请求该URL的时候携带的Referer不符合防盗链的设置,可能的原因如下:

  • Referer为空,请求Header中没有Referer字段或者Referer字段为空。
  • Referer不在规定的Referer范围内或者格式错误。

解决方案

Referer报错一般是站点类应用,设置防盗链后访问出错时,可根据执行以下相应的操作进行排查:

  1. 建议您清空浏览器缓存后,根据访问端的不同进行调试,分析具体报错的原因。
    • 如果是PC端,可以在浏览器中可以查看Header的Referer。如Chrome浏览器,按键盘F12打开开发者工具,在Network中查看具体请求携带的Referer。
    • 如果是移动端的访问,则需要借助于PC热点。移动端访问的方式可使用winshark或者是fidder进行抓包,分析具体请求URL中Request的Headers中携带的Referer,目前移动端访问页面可能存在某些浏览器强制设置Referer为空的情况,也就会出现PC端访问正常,而移动端无法访问的情况,需要具体抓包分析。
  2. 根据分析结果,执行以下操作进行处理:
    • Referer为空,请求Header中没有Referer字段或者Referer字段为空时,请参见设置防盗链进行配置。
      1. 登录OSS管理控制台单击Bucket列表,之后单击目标Bucket名称。
      2. 单击权限管理>防盗链防盗链区域,单击设置,配置该Bucket的防盗链。有关配置Referer时使用通配符的具体示例,以及配置Referer后的效果,请参见防盗链
    • Referer不在规定范围或者格式错误时,需要注意以下几点:
      • 确认是http://还是https://配置。
      • a.example.comb.example.com,匹配于http://*.example.comhttp://?.example.com
      • example.com匹配于http://example.com,而不是http://*.example.com
      • Referer格式错误,Referer配置必须带http://或者https://,否则无效,如b.example.com是无效配置。

  3. 执行完成以下操作后如果问题还是存在,请参见OSS防盗链配置及常见错误排查方法,进一步排查。

适用于

  • 对象存储OSS

 

首页 设置OSS防盗链后访问OSS资源出现“You are denied by bucket referer policy”错误