这是一种相当普遍的做法,称为网络错误,这是邮件客户端不会自动加载外部图像的主要原因(第二个是保护您免于查看可能令人不安的不需要的垃圾邮件图像;例如,色情)。
基本上,当您加载启用了外部图像的电子邮件并且<img src='http://192.1.1.1/images/53512_58925.png'>源中包含指向图像的链接时,nginx当您的浏览器/邮件客户端获取和下载图像:
10.1.2.3 - - [10/Oct/2012:10:33:41 -0400] "GET /images/53512_58925.png HTTP/1.1" 200 1933 "http://192.1.1.1/images/53512_58925.png" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.81 Safari/537.1"
这给了他们:
- 您查看电子邮件的计算机的 IP 地址(
10.1.2.3在本例中),
- 服务器时钟访问的时间戳
[10/Oct/2012:10:33:41 -0400],
- 获取图像的(第一行)HTTP GET 请求(
GET /images/53512_58925.png),
- HTTP 响应代码(200 表示成功),
- 正在访问的文件的大小(1933 字节),
- 文件的完整 URL(192.1.1.1 是电子邮件发件人服务器的 IP),以及
- 客户端的 User-Agent 字符串(指示您正在使用的 Web 浏览器和可能的操作系统)。
要真正准确地跟踪您,他们需要有一个唯一的图片 URL;例如,文件 53512_58925.png 可能意味着用户 58925 阅读了 ID 为 53512 或其他内容的电子邮件。他们还可以使用 HTTP GET 参数做一些事情,类似<img src='http://192.1.1.1/images/logo.png?user_id=58925&email_id=53512'>的事情也会被记录下来。
我不打算评论它的合法性。法律各不相同,而且我不住在的一些国家最近颁布了严格的 IT 隐私法(例如,在未经用户明确同意的情况下禁止类似的政策 cookie 跟踪)。此外,该论坛并非真正旨在提供法律建议。
这与同源策略无关(用于限制远程加载的客户端脚本在 javascript 等语言中的功能;所以去 unsafe-web-page.com 不应该能够读取/修改其他浏览器数据选项卡)或 XSS(攻击者利用漏洞在网页中注入不属于他们自己的内容)。