新浪图床外链403错误原理:
当浏览器向服务器发送请求时,一般会带上Referer头,告知服务器该请求是从哪个页面链接过来的。 每当请求一个url,服务器会检查客户URL中所携带的Referer字段的信息,禁止或者允许符合特定规则的url访问,Referer经常被用于页面访问统计、图片防盗链等。
常见CDN服务就会提供此类型的防盗链功能,典型特征是:不能通过其他网站访问,但是直接访问图片资源的URL是可以下载、查看。
新浪图床403解决办法1:META标签
在网站的<head>标签内添加一行声明referrer的规则
<meta name="referrer" content="same-origin">
<meta name="referrer" content="no-referrer"/>
注意:可能会有一些网站基于referrer规则的功能会异常
referrer 可用值
1、
no-referrer
:所有请求不发送 referrer。2、
no-referrer-when-downgrade
(默认值):当请求安全级别下降时不发送 referrer。目前,只有一种情况会发生安全级别下降,即从 HTTPS 到 HTTP。HTTPS 到 HTTP 的资源引用和链接跳转都不会发送 referrer。3、
same-origin
:对于同源的链接和引用,会发送referrer,其他的不会。4、
origin
:在任何情况下仅发送源信息作为引用地址。源信息包括访问协议和域名。5、
strict-origin
:在安全级别下降时不发送 referrer;而在同等安全级别的情况下仅发送源信息。注意:这个是新加的标准,有些浏览器可能还不支持。6、
origin-when-cross-origin
:同源的链接和引用,会发送完全的 referrer 信息;但非同源链接和引用时,只发送源信息。7、
strict-origin-when-cross-origin
:同源的链接和引用,会发送 referrer。安全级别下降时不发送 referrer。其它情况下发送源信息。注意:这个是新加的标准,有些浏览器可能还不支持。8、
unsafe-url
:无论是否发生协议降级,无论是本站链接还是站外链接,统统都发送 Referrer 信息。正如其名,这是最宽松而最不安全的策略。
新浪图床403解决办法2:IMG标签
HTML5中的img标签有一个referrerpolicy的属性,可以显示声明referrer规则
referrerpolicy="no-referrer"
<img src="https://wx4.sinaimg.cn/large/006WvzUFly4g2fbc9ojcbj30j60auq3j.jpg" referrerpolicy="no-referrer">
发表评论