
noopener 和 noreferrer 是 HTML 中 <a> 标签的安全相关属性,核心作用是保护网页安全、防范恶意攻击,同时控制浏览器行为。
一、noopener 是什么
作用:阻止新打开的网页(通过 target="_blank" 跳转)访问原网页的 window.opener 对象。
意义:如果没有这个属性,新页面可能通过 window.opener 操控原页面(比如篡改 URL、窃取信息),尤其在跳转未知 / 不可信网站时,风险极高。
适用场景:只要用 target="_blank" 打开外部链接,都建议添加,避免被恶意网站利用。
二、noreferrer 是什么
作用:有两个核心效果,一是和 noopener 一样阻止新页面访问 window.opener;二是让新页面的服务器无法获取原页面的 Referrer(即访问来源)。
意义:既具备 noopener 的安全防护,又能保护原页面的访问来源隐私,避免第三方网站追踪用户的跳转路径。
适用场景:需要隐藏访问来源,或同时需要 “防操控 + 防追踪” 的外部链接。
三、两者的关系与使用建议
兼容性:现代浏览器(Chrome、Firefox、Edge 等)已支持用 noopener 单独实现 “防操控”,但部分旧浏览器需依赖 noreferrer 补充。
常用组合:实际开发中常写成 <a href="xxx" target="_blank" rel="noopener noreferrer">,同时覆盖安全防护和兼容性,是外部链接的标准安全写法。
用法:
<a href="https://www.chsi.com.cn/" target="_blank" rel="noopener noreferrer">学信网</a>


