我什么时候应该使用rel = noreferrer?

Vis*_*ule 5 html hyperlink rel

我必须链接其他一些外部站点。

我知道什么时候用nofollow。但是我不清楚何时应该使用rel=noreferrer

Mac*_*ity 9

noreferrer不仅阻止 HTTP 引用标头,它还可以防止涉及 window.openerJavascript 漏洞

<a href="http://someurl.here" target="_blank">Link</a>
看起来足够无害,但有一个漏洞,因为默认情况下,正在打开的页面允许打开的页面通过 window.opener 回调它。有一些限制,跨域,但仍然可以做一些恶作剧
window.opener.location = 'http://gotcha.badstuff';

noreferrer大多数的浏览器将禁止window.opener利用

  • 我相信 noopener 是当前处理该漏洞的最佳实践,而不是 noreferrer。 (4认同)

Vis*_*ule 5

简而言之,noreferrer单击链接时链接类型将隐藏引荐来源信息。具有noreferrer链接类型的链接看起来像这样:

<a href="http://www.example.com" rel="noreferrer">Click here for more info</a>
Run Code Online (Sandbox Code Playgroud)

如果有人通过使用此链接类型的链接到达您的站点,则您的分析将不会显示谁引用了该链接。相反,它会错误地在您的获取渠道报告中显示为直接流量。

如果您拥有不信任的其他人站点的外部链接,并且想要隐藏引荐来源信息,则可以将两者结合使用

<a href="http://example.com/sample_page/" rel="noreferrer nofollow">Other Domain Link</a>
Run Code Online (Sandbox Code Playgroud)

我建议您使用nofollow以下内容的链接:

  • 评论或论坛上的链接 -任何包含用户生成内容的内容都可能是垃圾邮件的来源。即使您小心翼翼,事情也会悄悄溜走。
  • 广告和赞助商链接 -任何旨在成为广告或属于赞助安排的链接均不得使用。
  • 付费链接 -如果您以任何方式对链接收费(目录提交,质量评估,审阅等),nofollow则出站链接

  • @AK通常的情况是用户生成的内容,您不知道该内容是否值得信赖。但任何外部网站本身都可能成为黑客攻击的受害者,因此最佳做法是确保安全。 (4认同)

Dan*_*cki 5

正如@unor所说,当点击链接时它会隐藏引用者信息。基本上,当您想要向链接域的所有者隐藏用户来自您的网站时,这是一种隐私增强功能。

例子:

用户在您的网站www.mywebsite.com上,您有一个<a href="https://newsite.com">Link</a>. 当有人点击“链接”时, newsite.com的所有者就知道它来自www.mywebsite.com。通过设置,rel=noreferrer您可以防止泄露此信息。

一个很好的例子是它如何运作,从本次会议演讲的 21:28开始。在使用服务器端(例如 Node.js)时,这被认为是一个很好的实践。您还可以在Helmet 文档中阅读相关内容。