WordPress中rel="noopener"

选择在新窗口中打开链接,则WordPress会将此属性添加到您的链接中。 WordPress 4.7.4 版开始的编辑器默认都会添加该属性,主要就是用来防范新窗口打开链接时可能存在的钓鱼攻击, 因此 WordPress 是作为安全性内容自动添加的。

一:wordpress rel="noopener"?

rel="noopener"是一个HTML属性,添加到所有选择在新浏览器选项卡中打开的WordPress链接。它还伴随着rel="noreferrer"属性。此功能是在WordPress中引入的,用于解决可被恶意网站利用的安全漏洞。

有一些JavaScript功能允许新选项卡控制其引用窗口。如果您链接到受恶意代码影响的外部网站,则该网站可以使用window.opener JavaScript属性更改原始页面(您的网站)以窃取信息并传播恶意代码。

添加rel="noopener"会阻止新标签利用此JavaScript功能。同样,rel="noreferrer"属性可防止将引用者信息传递给新选项卡。

WordPress始终保持领先地位,以帮助提高网站安全性。当您添加链接并选择“在新标签页中打开”时,WordPress会将rel="noopener"和rel="noreferrer"添加到链接代码中。

WordPress生成的HTML代码如下所示:

demo link

二:rel="noopener"影响你的SEO?

即使rel=noopener”属性提高了WordPress的安全性,一些用户也希望避免使用它,因为他们认为这会影响他们的WordPress SEO。

那只是一个神话。

它对您的WordPress网站的SEO排名或整体WordPress表现没有影响。

三:noopener与nofollow之间有什么区别?

很容易将rel="noopener"与rel="nofollow"混合起来。它们是完全分开的。

noopener属性可以防止您的网站被跨站点黑客攻击并提高WordPress的安全性。

另一方面,nofollow属性可以防止您的网站将SEO链接排名传递给链接的网站。

在您的网站上关注链接时,搜索引擎会查找并考虑nofollow属性。但是,他们不会考虑noopener标签。

默认情况下,WordPress不允许您向外部链接添加nofollow。如果你想在WordPress中添加nofollow,那么你需要使用一个插件。有关详细信息,请参阅我们的文章,了解如何向WordPress中的链接添加标题和nofollow。

四:rel=noreferrer”会影响WordPress中的联盟链接吗?

rel=noreferrer”不会影响WordPress中的联盟链接。一些用户认为这样做是因为rel ="noreferrer"阻止将引用者信息传递给新选项卡。

但是,大多数联盟计划会为您提供具有您的联属会员ID的唯一网址。这意味着您的会员ID将作为URL参数传递给其他要跟踪的网站。

其次,大多数联盟营销人员使用链接隐藏插件作为其联盟链接。

使用链接隐藏,用户点击的联盟链接实际上是您网站自己的URL,然后将用户重定向到目标网址。

五:如何在WordPress中禁用rel ="noopener"?

无需从您网站上的链接中删除rel="noopener"。它有利于您网站的安全性,并且对您的网站没有任何性能或SEO影响。

但是,如果必须将其删除,则必须在WordPress中禁用Gutenberg块编辑器并使用旧的经典编辑器。之后,您需要将以下代码添加到主题的functions.php文件或特定于站点的插件中。

add_filter('tiny_mce_before_init','tinymce_allow_unsafe_link_target');
function tinymce_allow_unsafe_link_target( $mceInit ){
$mceInit['allow_unsafe_link_target']=true;
return $mceInit;
}

不建议删除rel="noopener"。没有充分的理由这样做。

总结

添加这段代码后新发布文章时,新窗口打开的链接将不会再自动添加 noopener noreferrer 属性。但是之前发布的文章并不会自动去除的,如果真的很介意,那么可以使用 sql 语句来替换文章内容字段中的这个属性。

<a> 标签通常会配合着使用 noopener, noreferrer 及 nofollow 这些属性, 它们的作用及用法如下。

noopener

当给链接加上 target="_blank" 后, 目标网页会在新的标签页中打开, 此时在新打开的页面中可通过 window.opener 获取到源页面的 window 对象, 这就埋下了安全隐患。

具体来说,

你自己的网页 A 有个链接是打开另外一个三方地址 B
B 网页通过 window.opener 获取到 A 网页的 window 对象, 进而可以使得 A 页面跳转到一个钓鱼页面 window.opener.location.href ="abc.com", 用户没注意地址发生了跳转, 在该页面输入了用户名密码后则发生信息泄露
为了避免上述问题, 引入了 rel="noopener" 属性, 这样新打开的页面便获取不到来源页面的 window 对象了, 此时 window.opener 的值是 null。

所以, 如果要在新标签页中打开三方地址时, 最好配全着 rel="noopener"。

noreferrer

与 noopener 类似, 设置了 rel="noreferrer" 后新开页面也无法获取来源页面的 window 以进行攻击, 同时, 新开页面中还无法获取 document.referrer 信息, 该信息包含了来源页面的地址。

通常 noopener 和 noreferrer 会同时设置, rel="noopener noreferrer"。

既然后者同时拥有前者限制获取 window.opener 的功能, 为何还要同时设置两者呢。

考虑到兼容性, 因为一些老旧浏览器不支持 noopener。

nofollow

搜索引擎对页面的权重计算中包含一项页面引用数 (backlinks), 即如果页面被其他地方链接得多, 那本页面会被搜索引擎判定为优质页面, 在搜索结果中排名会上升。

当设置 rel="nofollow" 则表示告诉搜索引擎, 本次链接不为上述排名作贡献。

一般用于链接内部地址, 或一些不太优质的页面。

转载:聊一聊被人忽视的WordPress中的rel=“noopener”是什么?
https://baijiahao.baidu.com/s?id=1623530913705561411&wfr=spider&for=pc
noopener, noreferrer 及 nofollow 的用法 - 知乎
https://zhuanlan.zhihu.com/p/366736912
Window opener 属性 | 菜鸟教程
https://www.runoob.com/jsref/prop-win-opener.html