【发布时间】: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