【问题标题】:How to add private image link in HTML email如何在 HTML 电子邮件中添加私人图像链接
【发布时间】:2019-09-29 03:18:46
【问题描述】:

我有一个 Web 服务器,可以访问公共和私有图像。任何人都可以通过https://example.com/public/images/some-public-image.jpg 等url 获取公共图像。但是对于私有图像,只有图像的所有者可以通过链接https://example.com/private/images/some-private-image.jpg访问它们,请求需要在cookie中具有经过身份验证的用户的会话ID。

要在电子邮件内容中添加公共图像,我在电子邮件 HTML 内容中使用 <imag src="https://example.com/public/images/some-public-image.jpg" />。但不能使用<img src="https://example.com/private/images/some-private-image.jpg" />等私有链接,因为需要认证。

在电子邮件内容中添加私人图像的常见做法是什么?

像这样在链接中嵌入 JWT 令牌可以吗

<img src="https://example.com/private/images/some-private-image.jpg?token=AdflkndidgX..." />

服务器然后在返回图像之前检查令牌的有效性。

这种方法是否存在安全问题?

【问题讨论】:

    标签: html security smtp jwt html-email


    【解决方案1】:

    如果您的令牌仅对该图像有效,并且不能用于其他范围(例如使用其他 API 进行身份验证),则使用它不是问题。问题是所有的认证都是基于图像链接的知识。因此,如果您使用名称的 guid 生成图像,则相同。

    但是,您并没有识别打开图像的用户,您只是在检查是否有人知道该链接。窃取链接的攻击者可以在没有任何凭据知识且不进行访问的情况下查看图像。您确定这是您希望应用程序的行为吗?最好的方法是发送一封没有敏感信息(图片)的邮件,并强制用户点击一个链接来验证他的身份。

    【讨论】:

      猜你喜欢
      • 2020-01-15
      • 2018-05-21
      • 2013-03-20
      • 2023-01-11
      • 1970-01-01
      • 2012-10-10
      • 1970-01-01
      • 2011-07-11
      • 2014-07-02
      相关资源
      最近更新 更多