rel="noreferrer" 能真正阻止 referer 发送,是唯一前端可控的“彻底不发”方案,作用于 标签点击行为,所有现代浏览器原生支持且不依赖 javascript。

rel="noreferrer" 能否真正阻止 Referer 发送
能,而且是唯一前端可控的“彻底不发”方案——不是隐藏、不是截断、不是替换,是让浏览器压根不生成 Referer 请求头。它作用于 @#@#@#@#@#@#@#@#@#@0
- 必须配合
target="_blank"才有必要加noreferrer?不,即使target="_self",只要目标是第三方域名,就应加 - 邮件模板、CMS 后台导出的 HTML 中,常被自动 strip 掉
rel属性,需检查输出逻辑 - 广告位、联盟链接、下载按钮(如
@#@#@#@#@#@#@#@#@#@1)最容易漏 -
rel="noreferrer"和referrerpolicy="no-referrer"不要混用;后者会被忽略
如何验证 Referer 确实没发
别只看代码写了没,必须实测请求头。打开 Chrome DevTools → Network 标签页 → 点击链接 → 找到对应请求 → 查看 Request Headers 区域。
- 正确效果:
Referer字段应完全缺失(不是空字符串,是压根没这一行) - 重点验证敏感路径:比如从
/dashboard?uid=123&token=xyz跳转,目标站不应收到完整 URL - curl 测试无效:curl 默认不带 Referer,不能代替浏览器点击行为验证
- 如果看到
Referer: https://yoursite.com/xxx,说明rel="noreferrer"没生效,优先检查是否被 CMS 过滤或拼写错误(如写成noreferer)
为什么 referrerpolicy="no-referrer" 不适合链接跳转
referrerpolicy 属性适用于 <img>、<script></script>、<iframe></iframe>、<form></form> 等资源加载场景,但它对 <a></a> 标签点击跳转**无效**(除部分旧版 Safari 外,主流浏览器已明确不支持)。
- 给
<a></a>加referrerpolicy="no-referrer"是徒劳的,浏览器会忽略 - 它不触发
noopener,新开页面仍可通过window.opener反向操控原页 - 右键新开时,
referrerpolicy也无效;而rel="noreferrer"至少守住“点击”这一主路径 - 真要全局控制,应由后端设置 HTTP 响应头
Referrer-Policy: strict-origin-when-cross-origin
rel="noreferrer" 约束。如果你的业务要求 Referer 绝对不可见,就得接受这个边界——没有银弹,只有最常发生的路径被守住。前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











