【问题标题】:mailto in href: should I add rel noopener,noreferrer?在href中的mailto:我应该添加rel noopener,noreferrer吗?
【发布时间】:2018-12-14 02:05:04
【问题描述】:

假设我有这个 HTML 代码:

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

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

【问题讨论】:

    标签: html security mailto privacy


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢。 mailto 为我打开一个新窗口。
    • 您是否使用navigator.registerProtocolHandler 处理mailto 链接?默认情况下应该启动一个邮件客户端。
    • 我的邮件客户端是 gmail,我使用的是带有 firefox 的 mac,当我点击“mailto”时,它总是会打开一个带有 gmail 的新标签。
    【解决方案2】:

    在邮件中,我认为不会有任何区别。引荐来源标头包括源链接位置的 URL - 但电子邮件没有 URL,因此我希望引荐来源标头在这种情况下为空或不存在。

    不可能在电子邮件客户端中使用像 navigator.registerProtocolHandler 这样的东西,因为它们通常不支持任何类型的脚本。当您使用网络邮件客户端时,它的行为可能会有所不同,但我尚未对此进行测试。

    反过来说,如果您的网页包含发送到邮件客户端的 mailto 链接,我再也没有见过使用引用 URL 做任何事情的邮件客户端,因为它不是 HTTP 客户端并且不处理 HTTP 请求,而是协议切换。

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

    【讨论】:

      猜你喜欢
      • 2018-11-19
      • 2020-02-28
      • 2018-11-15
      • 2020-04-05
      • 1970-01-01
      • 2017-02-24
      • 2022-10-16
      • 2018-01-31
      • 2012-01-12
      相关资源
      最近更新 更多