在现代浏览器中基本失效,因chrome 85+、firefox 90+已完全忽略该标签,且其仅影响html解析后自动发起的子资源请求(如、),对fetch()、xmlhttprequest、页面跳转、表单提交无效;http响应头referrer-policy优先级更高并直接覆盖它;真正有效的做法是使用元素级referrerpolicy属性或服务端referer校验。

<meta name="referrer"> 在现代浏览器中基本失效,别再靠它解决防盗链问题。
为什么 <meta name="referrer"> 经常不生效
这不是你写错了,而是浏览器早就弃用了这个机制:
- Chrome 85+、Firefox 90+ 已完全忽略
name="referrer"的<meta>标签 - 即使旧版浏览器支持,它也只影响 HTML 解析后自动发起的子资源请求(如
<img>、<script></script>),对fetch()、XMLHttpRequest、页面跳转、表单提交完全无效 - HTTP 响应头中的
Referrer-Policy会直接覆盖<meta>设置,且优先级更高 - 如果
<meta>没放在最前面,它之前已发出的资源请求早已按默认策略发出去了
referrerpolicy 属性才是当前有效写法
必须写在具体资源标签上,不能塞进 <meta>:
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
<img src="https://cdn.example.com/photo.jpg?x-oss-process=image/resize,p_40" referrerpolicy="no-referrer"><script src="https://cdn.example.com/lib.js" referrerpolicy="strict-origin-when-cross-origin"></script><iframe src="https://embed.example.com/widget" referrerpolicy="origin"></iframe>
注意:referrerpolicy 是 HTML 属性,不是 name 值;它的可选值包括 no-referrer、origin、strict-origin-when-cross-origin 等,不同值对跨域请求的 referrer 截断程度不同。
真正防别人盗你资源,得靠服务端
前端删 referrer 只能防止自己“泄露来源”,对别人扒你图片、JS、CSS 完全没用:
- Nginx 示例:用
valid_referers配合if ($invalid_referer)返回 403 - CDN(如 Cloudflare、阿里云 CDN)都提供 Referer 黑白名单功能,比前端控制更可靠
- 不要对
.html文件或根路径/做 referer 校验——爬虫、微信内嵌页、PWA 启动页都会因此 403
最易被忽略的一点:防盗链不是前端该扛的事。只要资源 URL 是公开可访问的,且服务端没做校验,加再多 referrerpolicy 也没用。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










