【问题标题】:Is there a closed list of HTML tags and CSS styles that can load remote content?是否有可以加载远程内容的 HTML 标记和 CSS 样式的封闭列表?
【发布时间】:2020-02-27 00:41:53
【问题描述】:

在我们公司的后端,我们正在编写一个页面来查看收到的电子邮件。

我们希望保护我们的用户不被电子邮件发件人跟踪,因此显示的 HTML 不应加载图像、javascript、远程 CSS 等。

调查

最初的想法是通过设置某种“窗口/沙盒”查看器来保护远程内容(我们所有的代理都使用受控版本的 Thunderbird,因此我们不需要为所有浏览器通用编码)。

然而,这似乎是不可能的。根据这个问题How can I prevent an iframe displaying an email to load images and other email trackers?我们不能阻止浏览器加载它,所以我们必须预先解析HTML。

问题

我应该去掉哪些标签?

我想知道是否存在可以强制远程内容加载的 HTML 标记“封闭列表”。

例如,很明显电子邮件中的任何 javascript 都将被删除。同样的方式,我们将删除所有<IMG> 标签,防止src= 属性进行远程调用。是的,我们知道,如果没有精美的图片,电子邮件看起来会很丑陋,但我们需要防止因“制作漂亮酷炫的显示”而被跟踪。

已经探索过

我们知道我们可以丢弃电子邮件的 HTML 版本并坚持使用文本版本。

但是有些发件人只发送 HTML 而不是 text+HTML。我们希望保留“一点格式”(字体大小、颜色、表格、粗体、斜体等),并且我们同意“取消”一些东西,例如远程样式(只允许本地样式)、远程图像等。

我们想知道是否...

a) 我们需要自己调查要删除的标签和要留在 HTML 中的标签

或者 b) 有任何已知的封闭列表告诉“可能导致远程加载的 HTML 元素是这个和那个”。

编辑

正如@NevNein 所指出的,有一些非标签的东西可能会触发远程调用,例如<div style="background-image: url('https://some.tracking.link')"></div>

所以问题扩大到:

是否有可以在浏览器中触发远程调用的 html-tags 和 css-styles 的封闭列表?

【问题讨论】:

  • 与HTML标签没有直接关系,但是如果你完全想避免外部调用,移除远程样式是不够的,例如<div style="background-image: url('https://some.tracking.link')"></div>会在浏览器中触发网络调用。
  • 同意,NevNein,我将编辑问题以将其扩展到任何“事物”,甚至不是标签。谢谢你的意见。

标签: html css tags html-email remote-access


【解决方案1】:

好消息是您不必担心iframejavaScript,因为大多数电子邮件客户端都禁用了它们。

禁用图像的问题是某些电子邮件的内容仅在图像中。

一些要剥离的标签包括linkimgbackground-imagebackground。有关电子邮件客户端支持哪些标签的良好指南,请访问:https://www.campaignmonitor.com/css/

【讨论】:

  • 情况正好相反。也许我没有表达清楚。这不是支持“其他电子邮件客户端”,而是在我们基于 Web 的管理面板中构建我们自己的电子邮件查看器。 “查看器”是我们将构建的,我们想知道在将电子邮件正文发送到浏览器之前需要从电子邮件正文中去除哪些标签,以确保没有加载远程内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-13
  • 1970-01-01
相关资源
最近更新 更多