• 欢迎光临~

图片浏览器上可以直接访问,但是在img上报404

开发技术 开发技术 2022-10-19 次浏览

解决方案(之一)

在页面中加入
<meta name="referrer" content="no-referrer" />

原因

  1. HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器该网页是从哪个页面链接过来的,服务器因此可以获得一些信息用于处理。
  2. 当图片浏览器上可以直接访问,但是在img上报404,可能是由于服务器利用Referer设置了防外链,以上代码可以取消发送Referer,使防外链失效

扩展

  1. referrer值的设置
    no-referrer-when-downgrade 默认值,当https到http的请求不会发送Referer
    no-referrer 不发送Referer
    same-origin 同源的请求,会发送Referer
    origin 会发送,但是只发送协议和域名信息
    strict-origin 安全级别下降时不发送 referrer;安全级别未下降时发送源信息。相当于 origin 加 no-referrer-when-downgrade
    origin-when-cross-origin 同源的请求,会发送Referer,不同源的情况下,只发送协议和域名信息
    strict-origin-when-cross-origin 同源的请求,会发送Referer,https到http的请求不会发送Referer,其他时候,只发送源信息
    unsafe-url 任何时候都发送Referer

  2. 设置方法
    通过 http 响应头中的 Referrer-Policy 字段
    通过 <meta> 标签,name 为 referrer
    通过<a> 、<area>、<img>、<iframe>、<link>元素的 referrerpolicy 属性。

  3. 注意
    no-referrer是最省事同时也是最不安全的模式,可能会导致SEO失效,以及源站的资源或服务访问失败

程序员灯塔
转载请注明原文链接:图片浏览器上可以直接访问,但是在img上报404
喜欢 (0)