登录
首页 >  文章 >  前端
推广推荐
下载万磁搜索绿色版 ➜
支持 PC / 移动端,安全直达
HTML中的rel属性虽常被用于SEO优化,但真正关乎浏览器安全的仅有noopener和noreferrer两个取值,且二者必须与target="_blank"配合使用才能生效:noopener防止新页面通过window.opener劫持原页面,noreferrer进一步阻断Referer头泄露来源信息;其他如nofollow、external等值纯属语义标记,对安全毫无实质作用——理解这一关键限制,尤其是Safari 15.4前的兼容性陷阱,才是防范钓鱼、DOM劫持和信息泄露的核心所在。

HTML中rel属性的所有取值及在链接安全中的作用

rel 属性没有“所有取值”的官方穷举列表,HTML 标准只定义了一组**规范值(valid values)**,其余是扩展或历史遗留值;在链接安全中,真正起作用的只有 noopenernoreferrer,且必须配合 target="_blank" 才有意义——其他值如 nofollowexternal 对安全无实质影响。

哪些 rel 值会影响浏览器安全行为

只有两个值会直接改变新页面的执行上下文和请求头:

  • noopener:阻止新打开的页面通过 window.opener 访问原页面的 window 对象,避免钓鱼或 DOM 劫持
  • noreferrer:不仅包含 noopener 效果,还会让浏览器不发送 Referer 请求头,防止目标站获知来源 URL
  • 二者可共存:rel="noopener noreferrer" 是当前最稳妥的写法
  • nofollowexternalugc 等纯属 SEO 语义,浏览器完全忽略其安全含义

为什么只对 a 标签 + target="_blank" 有效

noopenernoreferrer 的作用机制依赖于“新浏览上下文”的创建,而 HTML 中仅当 a 标签带 target="_blank"(或非 _self 的 target)时,浏览器才会新建一个独立的 browsing context。其他场景下设置它们无效:

常见错误写法与后果

这些写法看似“更安全”,实则要么多余,要么掩盖真实风险:

真正关键的不是“用了多少 rel 值”,而是是否理解 noopener 的触发条件和浏览器兼容边界——Safari 15.4 是分水岭,此前版本必须显式同时写 noopener noreferrer 才可靠。

终于介绍完啦!小伙伴们,这篇关于《HTML中rel属性的取值及在链接安全中的作用rel属性用于定义当前文档与被链接文档之间的关系,常用于标签中。它不仅有助于搜索引擎优化(SEO),还在提升网站安全性方面发挥重要作用。以下是一些常见的rel属性取值及其在链接安全中的作用:1. rel="nofollow"作用:告诉搜索引擎不要追踪该链接,也不传递权重。安全作用:防止垃圾链接或恶意网站通过你的页面获得SEO优势,降低被黑或钓鱼的风险。使用场景:评论区、用户生成内容(UGC)、广告链接等。2. rel="noopener"作用:防止新打开的页面通过window.opener访问原页面的window对象。安全作用:防止恶意网站通过target="_blank"跳转后操控原页面,保护用户免受钓鱼攻击或恶意脚本注入。使用场景:所有使用target="_blank"的外部链接。注意:现代浏览器已默认对target="_blank"添加rel="noopener",但显式声明更安全。3. rel="noreferrer"作用:阻止新页面获取原始页面的Referer信息。**安全作用》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布文章相关知识,快来关注吧!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>