在HTML中,链接标签用于创建指向其他网页或资源的链接。这个标签是<a>
,并且通常与href
属性一起使用,来指定链接的目标地址。
<a href="https://www.example.com">这是一个链接到example.com的文本</a>
-
target
属性:用于指定链接打开的方式。target="_blank"
会使链接在新的浏览器窗口或标签页中打开,target="_self"
会在当前标签或窗口中打开链接 。
-
title
属性:提供额外的信息,当鼠标悬停在链接上时,这些信息通常作为工具提示显示。
-
rel
属性:-
rel = “noopener”时,这个值是为了防止所谓的“反向tabnabbing”攻击。当链接以
target="_blank"
打开时,新页面可以通过window.opener
属性访问到打开它的页面。这允许新页面操纵或窃取打开它的页面的数据。使用noopener
可以阻止这种访问,从而提高安全性。 -
rel = “noreferrer”,这个值会阻止浏览器发送HTTP Referer头部,该头部通常包含了请求页面(即源页面)的URL。这可以保护用户的隐私,防止目标网站知道用户是从哪个页面跳转过来的。
-
因此,当你使用
target="_blank"
打开外部链接时,推荐同时使用rel="noopener noreferrer"
来增强安全性并保护用户隐私。
-
什么是反向Tabnabbing?
反向Tabnabbing是一种网络钓鱼攻击手段。在这种攻击中,黑客通过在页面A中植入一个a标签(即一个超链接),链接指向黑客精心准备的页面B。页面B的内容包含一个JavaScript代码,该代码的作用是改变用户浏览器的window.opener.location,使其指向一个与页面A非常相似的钓鱼页面C。
当用户点击这个链接时,由于JavaScript代码的作用,用户原本所在的页面A会被重定向到页面C,而这个过程是在用户毫无察觉的情况下进行的。因此,用户可能会在不知情的情况下在页面C上进行浏览、登录等操作,导致信息的泄露。
为了防止这种攻击,一种常见的做法是使用
rel="noopener"
属性。这个属性可以保护父页面(即页面A)免受通过子页面(即页面B)进行的反向Tabnabbing的恶意攻击。另外,noreferrer
属性也被用来隐藏引用者信息,防止网络钓鱼攻击。因此,在创建外部链接时,特别是在新窗口或标签页中打开时,推荐使用
rel="noopener noreferrer"
属性来提高网站的安全性和保护用户隐私。