为什么Cookie泄露对“贱人”来说是要命的?

央视的3.15晚会让一个平时只有Web开发者才知道的术语变得人人皆知了:cookie。但是央视的报导对cookie的介绍并不准确。其中既有夸大的部分,也有更大的风险没有提到。 既然央视提到了网易,我就以网易为例子来说。我以我的网易邮箱登陆了网易主页,通过浏览器工具看到了网易在我的浏览器中留下的Cookie。下图是一部分内容。 

 Cookie中保留了我所在的城市:bj,区号010。这不是通过我的IP算出来的,因为我访问加了代理。也许是因为我在查看天气时选择了区域。这是很典型的用户数据采集。很多人奇怪为什么Cookie会那么强大,什么都知道呢?原因就是网站在你进行各种输入的时候,把这些信息记录了下来。这个事实的另一面是,如果你上一个网站,却什么也没有输入,那它是不会知道你是男是女,芳龄几许,更不会知道你的门牌号码和银行账号的。比如你上网易的首页,仅仅浏览新闻。 但是,即便如此,网站依然可以记录你查看了那些新闻,来收集关于你的个人信息。比如你经常看体育新闻,或者喜欢浏览美容频道。通过对你的上网行为模式的分析,可以相当准确的猜测出你的性别,年龄,甚至职业和收入。这些数据就是网站用来卖给广告商,以实现“精准投放”的依据。 今天虎嗅有一篇重量级的文章,大声的告诉”贱人”,分析用户上网行为特征是业内通行的,而且这个技术为”贱人”创造了价值,劝告”贱人”不要矫情了。 那我们来看看网易是不是仅仅记录了用户上网行为。看cm_newmsg那条Cookie,它记录了我的邮箱用户名:tester(这是我涂改过的),而且记录了我一共有2139封邮件其中472封未读。这完全是我的个人隐私。网易的广告商有什么权利知道我还有472封信件没有读? 这还不是Cookie被泄露最可怕的事情。在上图中,有一个后面带着“HttpOnly”字样的东西,它叫NTES_SESS。这是一个Session Cookie。所谓的Session Cookie,就是网站用以唯一标识用户身份的“密码”。之所以用户输入一次用户名密码后就不需要每次打开新页面都输入,就是因为网站靠这个Session Cookie识别出来该用户已经登陆过了。这也是网易大声告诉”贱人”们的事实之一。 没错,这其实是Cookie最最重要的用途。但它也是最最危险的。因为别人一旦知道了你的Session Cookie,他就可以伪装是你!你可以不介意饭馆的老板把你爱吃土豆的事情告诉其他的餐馆老板,但你能够接受有人以你的名义去饭馆吃饭,然后把帐算到你的头上吗? 获得了Session Cookie,就得到了网站的完全信任。他可以查看你的邮件,以你的身份发微博,甚至以你的身份消费。 因为这个Session Cookie如此重要,网易在这里加了两把锁:第一,这个session很长,足足有161个字符。第二,则是加了HttpOnly的标志。这个标志可以禁止那些广告商嵌入的代码获得这个Cookie。也就是说,其他的Cookie可以拿走,这个Cookie不可以。 但这样就够了吗?HttpOnly这个标志,从诞生之日起,就是黑客的眼中钉。不断的有浏览器的漏洞被发现,可以绕过HttpOnly。直到2012年6月,还有人发现新的Java中的漏洞,可以无视HttpOnly,盗取Session Cookie。对于如此要命的Session Cookie,再加几把锁都不够。 作为拥有数以亿计用户的网站,将Cookie数据卖给他人,是将亿万用户的安全置于不顾。也许在某些人眼中,这些用户不过是些”贱人”,理当如此? 

推荐阅读