不能。标签不支持rel="noreferrer",html规范未将其列为合法属性,所有现代浏览器均忽略该值,referer仍按默认策略发送;唯一可行方案是用替代并配rel="noreferrer"。

area 标签加 rel="noreferrer" 能否阻止 Referer 发送
不能。<area> 标签不支持 rel="noreferrer",浏览器会直接忽略该属性,Referer 仍按默认策略发送。
为什么 area 不支持 noreferrer
<area> 是 <map></map> 内部的可点击区域,其跳转行为本质是模拟 <a></a>,但 HTML 规范明确未将 rel 列为 <area> 的合法全局属性。所有主流浏览器(Chrome 51+、Firefox 50+、Safari 11.1+、Edge 79+)均不解析 <area rel="noreferrer"> 中的 rel 值。
- 规范依据:HTML Standard 中
<area>允许的属性仅包括alt、coords、href、target、download、ping等,无rel - 实测表现:即使写上
rel="noreferrer",开发者工具 Network 面板中仍可见完整 Referer 请求头 - 替代方案不存在:无法通过 CSS 或 JS 拦截
<area>的原生跳转并手动发起无 Referer 请求(fetch 不支持导航)
想对图像映射区域做隐私保护,只能换方案
必须用 <a></a> 替代 <area>,再加 rel="noreferrer" 和 target="_blank"(如需新标签页)。
- 用绝对定位 +
z-index叠加透明<a></a>覆盖图片对应区域,视觉和语义等效 - 确保
<a></a>的href与原<area href>一致,且显式声明rel="noopener noreferrer" - 若需保持无障碍访问,给
<a></a>加aria-label描述区域用途,避免仅依赖视觉位置 - 注意:右键“在新标签页中打开”仍绕过
rel属性——这是设计限制,无法规避
真正兜底的 Referer 控制不在前端标签里
所有前端手段(包括 <a></a> 的 rel、referrerpolicy、<meta name="referrer">)都只覆盖部分场景。唯一能统一拦截 Referer 泄露的是后端响应头:
- Nginx 配置:
add_header Referrer-Policy "strict-origin-when-cross-origin" always; - 该头覆盖
fetch()、<img>、<script></script>、<form></form>提交、甚至 Service Worker 请求 - 尤其关键:它对用户右键新开、地址栏直接访问等“页面不可控行为”也生效
-
always参数必须加,否则 4xx/5xx 错误页可能泄露/admin?token=xxx这类路径
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











