流程是先调用获取本地图片,上传到自己的云服务器上,拿到oss返回的地址,展示。但是展示的时候获取oss图片时请求头中的Referer会带上地址,导致无法通过oss的防盗链,怎么把Referer置为空呢
您好,您可以在发送请求时设置 referer-policy 的值为 never,这样就可以删除 http head 中的 referer。另一种方式是,如果当前页面使用的是 https 协议,而正要加载的资源使用的是普通的 http 协议,则可以在 HTTP 请求头中将 referer 置为空。
此外,关于 HTTP referer 的一些额外信息可能对您有帮助:通常情况下,当用户直接在浏览器地址栏中输入 URL 或通过书签或外部链接等方式访问网站时,由于没有跳转来源页面,因此Referrer被设置为空。同时,有些网站在进行 CSRF 验证时会通过 referer 进行校验。可以将数据包中的 referer 置为空,从而绕过 referer 的校验。这种方法适用于一些没有考虑到 referer 为空的情况或者业务需要 referer 为空的情况的网站。
如果您想让 OSS 的防盗链设置允许空 Referer,您可以按照以下步骤进行操作:
登录阿里云控制台:
首先,登录到您的阿里云控制台。
进入OSS管理界面:
在控制台中找到对象存储服务(OSS),点击进入。
选择Bucket:
在OSS的Bucket列表中,选择您要修改防盗链设置的Bucket。
配置Referer白名单:
点击“基础设置”或“安全设置”,然后在“防盗链设置”区域找到“Referer设置”。
设置为空Referer:
为了允许空 Referer 访问,您需要将 *
添加到 Referer 白名单。这意味着任何来源(包括空 Referer)都可以访问 Bucket 中的资源。
保存更改:
完成设置后,记得保存更改。
清理缓存:
如果您的浏览器或者 CDN 上有缓存的旧规则,请确保清除这些缓存以确保新的防盗链设置生效。
https://help.aliyun.com/zh/oss/support/http-status-code-403?spm=a2c4g.11186623.0.i4#concept-1960170
参考地址:https://help.aliyun.com/zh/oss/an-403-error-occurs-when-requesting-images-stored-in-oss-through-http
当通过HTTP访问存储在OSS中的图片发生报错时,请参见以下操作进行排查处理:
第一步:确认Bucket权限。如果为私有权限,请按以下方式处理:
第二步:通过签名访问,签名可以参见阿里云SDK向OSS发起请求。带身份验证访问OSS资源的URL拼接方法请参见OSS请求流程。
第三步:将权限修改为公共读,如何修改权限请参见设置文件读写权限ACL。
第四步:确认防盗链设置。如果设置的Referer不允许为空,则只有预先设定好的Referer才可以进行访问,其他Referer访问会被拦截。在浏览器直接请求图片URL时Referer为空,故请求失败返回403错误。如无特殊需求,可将设置改为允许空Referer。详情请参见OSS防盗链配置及常见错误排查方法。
最后:如果还是无法解决,请参见访问OSS时出现403状态码的排查方法,进行排查。
希望能够帮助到你
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
对象存储 OSS 是一款安全、稳定、高性价比、高性能的云存储服务,可以帮助各行业的客户在互联网应用、大数据分析、机器学习、数据归档等各种使用场景存储任意数量的数据,以及进行任意位置的访问,同时通过丰富的数据处理能力更便捷地使用数据。