大家在接收电子邮件的时候,会发现一般情况下,邮件提供商会帮我们把邮件中的图片默认屏蔽。可能有些同学觉得不方便,还会产生疑问,为什么要屏蔽图片呢?其实在隐私越来越重要的当下,屏蔽邮件中的图片可以很好的保护我们的隐私。
可能有些同学就觉得更加好奇了:图片是怎么和用户的隐私联系起来的呢?其实这还要从电子邮件的基础说起。电子邮件是一项很重要的发明,有了它,几乎改变了我们的生活。从前人们联系的时候,只能靠电报、电话等方式。有了电子邮件以后,就可以随时随地的向别人发送信息,不用管别人在不在线。电子邮件的格式分为两种,纯文本和富文本格式。纯文本很好理解,富文本格式支持图片、丰富的样式等,所以很多邮件为了好看,都是以富文本方式发送的。
那么关键到了,富文本这个格式,实际上就是我们每天使用浏览器上网时候都在看的东西,HTML网页。当时电子邮件为了比较方便的支持富文本,自然会想到使用HTML这种已经广泛使用的格式。既然如此,网页做的有多好看,电子邮件自然也可以做的那么好看。但是,这样做同时也带来了另一个严重的问题,那就是隐私问题。
HTML网页中可以包含脚本标签,用以执行一些自定义的行为。如果被黑客利用,就会导致安全问题。这个相信大家都很容易理解。但是图片又是怎么回事呢?其实上,HTML的图片只是一个定义了图片地址的标签,等浏览器或者电子邮件客户端渲染页面的时候, 会根据图片标签中定义的地址去下载这个图片,然后显示在合适的地方。
浏览器这样做是没啥问题的,因为毕竟网站就是给人看的。但是电子邮件这样做的话,就会引发隐私问题。别人给你发了一封电子邮件,本来不知道你是否阅读了这封邮件。但是电子邮件从图片服务器上下载了这个图片,如果这个图片所在的服务器正好属于给你发送邮件的人,那么他就知道你已经阅读了这封邮件。
其实到这里可能有些同学还是感觉,这貌似不是什么很严重的事情,不就是知道了我已经阅读过邮件了嘛,有什么大不了的。一般情况下是这样的,但是假如是一些别有用心的人,那么事情就又不一样了。比如老板给你发了一封邮件,你半夜没事干打开看看,发现只有一张图片。半分钟以后老板打过电话:“小王,没睡觉呢吧,单位有点事,你起来加个班吧!”
这还是比较好的情况,试想有个黑客黑进了你的网络,准备监听你的银行卡密码。但是等了好几天发现你都不登上银行看看。于是黑客给你发了一封邮件,说已经盗取了你的银行账号,顺便发了一张图片。你看完以后感觉很慌,于是赶快登上去修改密码,没想到黑客已经在那等着了,就在你修改完密码的时候,黑客同时也知道了你的密码。然后你的钱就全部被转走了。
说了这么多,可能大家还是没有什么直观感受,所以我利用python简单做一个例子,让大家看看图片是如何泄露你的隐私的。
例子中的部分代码
运行该项目中的flask脚本,在浏览器中输入要发送的邮箱地址。然后在垃圾邮件中就可以看到邮件已经发送过来了。点击允许显示图片,然后就可以在flask的日志输出中看到接收用户的IP地址和浏览器信息了。
示例输出
项目源代码放到了我的Github上,有兴趣的同学可以下载看看:
https://github.com/techstay/python-study/tree/master/why_disable_pictures_in_emails
当然我这个例子仅仅是演示用,访问的图片也是本地flask服务器上的,不会存在安全风险。但是从中也可以认识到,电子邮件中也暗藏玄机,稍有不慎,简单一个操作就可能泄露你的隐私信息。因此为了保证安全,一定不要打开来历不明的邮件。