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

解决方案(之一)

在页面中加入
<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失效,以及源站的资源或服务访问失败

posted @   爱做梦的陈先森  阅读(385)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示