|
凌晨三点,渗透我盯着浏览器开发者工具里那串Base64编码的渗透字符串,后背发凉。渗透那是渗透我刚访问过的购物网站的Session ID——只要把它塞进别人的浏览器,我就能以他的渗透身份下单、改收货地址、渗透甚至查看他三年前的渗透订单记录。这不是渗透科幻电影,这是渗透每个网站都在发生的日常。 Cookie这东西,渗透本质上就是渗透个身份证。服务器记不住你是渗透谁,就在你脑门上贴个标签,渗透下次你晃进来,渗透它一看标签就喊出你的渗透名字。问题在于,这标签太好复制了。黑客不用撬锁,不用砸墙,只需要在公共WiFi上嗅探,或者往你邮箱里塞个带恶意脚本的链接,就能把这标签抄走。去年有个安全团队做过实验,在纽约地铁站架了个假WiFi热点,六小时内截获了三千多个真实用户的Cookie——里面不乏银行账户、企业邮箱的登录凭证。 最讽刺的是,很多Cookie连加密都没有。我见过某家知名视频网站的Cookie,明文写着"user_id=12345",改个数字就能变成另一个用户的登录态。这种漏洞就像把家门钥匙挂在门把手上,还挂个牌子写着"请自取"。有些开发者觉得Cookie里不放密码就安全了,可他们忘了,Cookie本身就是一把钥匙,有了它,密码根本不需要。 那怎么防?别信什么"清除浏览器数据"的鬼话。我试过,清完Cookie,网站照样能通过浏览器指纹认出你——你的屏幕分辨率、字体列表、时区,这些信息组合起来比身份证还准。真正的办法是双因子认证,每次登录都要求手机验证码,这样就算Cookie被偷,黑客也进不了门。另外,重要操作别用公共电脑,别连来路不明的WiFi,这话老套,但真出事的时候,你才会后悔没听。 我有个朋友,做跨境电商的,某天发现自己的卖家账户在半夜下单了三百个电饭煲,收货地址是非洲某国。客服查了半天,最后发现是他两周前在咖啡馆用过的那个WiFi——有人在那路由器上做了手脚,专门截取他登录时的Cookie。那批货追回来了,但他的账号被平台封了三个月,理由竟是"疑似欺诈操作"。他跟我说,那感觉就像有人偷了你家的钥匙,进你屋里搬东西,最后物业还怪你锁不够结实。 说句难听的,Cookie安全这事,用户能做的太有限。网站开发者要是把Session ID设成随机长字符串,加个HttpOnly属性让脚本读不到,再设置合理的过期时间,大多数攻击根本无从下手。可现实是,很多小网站为了省事,直接拿用户ID当Session,连基本的防护都懒得做。你在这边小心翼翼,那边服务器却开着大门,这仗怎么打? 所以下次看到浏览器提示"此连接不安全"的时候,别点"仍然继续"。那不是吓唬你,那是服务器在告诉你:我这儿连门锁都没有,你确定要进来? |