href 中的 mailto:我应该添加 rel noopener,noreferrer 吗?

mailto in href: should I add rel noopener,noreferrer?

假设我有这个 HTML 代码:

<a href="mailto:me@example.org" target="_blank"></a>

据我所知,出于安全和隐私的原因,最佳实践告诉我必须在每个 link 出门的地方添加 rel="noopener noreferrer"。我是否必须将 mailto link 视为外部 link?

你可以在这里更好地理解它:https://mathiasbynens.github.io/rel-noopener/

简短回答:不需要,因为 link 不会打开一个新的 window,它可以(滥用)使用 window.opener 中解释的问题link 以上。

更新: 正如 op 指出的那样 - 我假设邮件客户端将处理 mailto: links 是错误的。可以使用 navigator.registerProtocolHandler 让网络应用程序处理这些 link(或任何其他 link)。因此,我会说你应该按照最初的建议添加 rel="noopener noreferrer"

在邮件消息中,我认为它不会有任何区别。推荐人 header 包括来源位置的 URL link - 但电子邮件 没有 URL,所以我希望在这种情况下推荐人 header 为空或不存在。

无法在电子邮件客户端中使用 navigator.registerProtocolHandler 之类的东西,因为它们通常不支持任何类型的脚本。当您使用网络邮件客户端时,这可能会有所不同,但我没有测试过。

换个方向,如果你有一个包含 mailto link 的网页被发送到邮件客户端,我从来没有见过一个邮件客户端对 referrer 做任何事情 URL,同样,因为它不是 HTTP 客户端,也不是处理 HTTP 请求,而是一个协议 hand-off.

总体设置 rel="noopener noreferrer" 不会损害您的 link,但我怀疑从功能或安全的角度来看,它也不会做任何有用或有趣的事情。