您现在的位置是:娱乐 >>正文

cookie欺骗

娱乐67人已围观

简介2019年,安全研究者Sam Curry在Twitter上发了一条推文,说他花10美元买了一个“管理员”身份。具体操作很简单:他在Chrome开发者工具里把某个网站cookie中的role=user改 ...

2019年,欺骗安全研究者Sam Curry在Twitter上发了一条推文,欺骗说他花10美元买了一个“管理员”身份。欺骗具体操作很简单:他在Chrome开发者工具里把某个网站cookie中的欺骗role=user改成了role=admin,刷新页面,欺骗后台管理面板就对他敞开了。欺骗这条推文被转了两万多次,欺骗评论区一半人在笑,欺骗另一半人在检查自己公司的欺骗网站。

cookie欺骗的欺骗本质就这么朴素——服务器太信任客户端了。HTTP是欺骗无状态协议,服务器记不住你是欺骗谁,所以它发给你一张“通行证”,欺骗也就是欺骗cookie,你每次请求都带着它。欺骗问题在于,这张通行证存在你自己的浏览器里,你能看见它,也能改它。如果服务器只看cookie里的内容就决定给你什么权限,那等于把钥匙藏在门垫下面,还贴了张纸条写着“钥匙在此”。

早期电商网站特别喜欢把购物车信息、用户ID甚至价格直接塞进cookie。我见过一个案例:某在线教育平台把课程价格写在cookie里,用户把price=299改成price=0.01,下单成功。这不是什么高深漏洞,就是开发时图省事。后来这种做法少了,但换个马甲又出现了——把Base64编码的JSON塞进cookie,以为编码等于加密。Base64解码不要太容易,浏览器控制台一行atob()就还原了。

更隐蔽的一种是“记住我”功能。很多网站给你一个长期有效的cookie,里面存着用户名或者用户ID的哈希。如果哈希算法弱,比如直接用MD5拼个固定盐值,攻击者拿到自己的cookie就能反推出构造规则,然后伪造别人的。2016年某社交平台就栽在这上面,安全研究员发现它的“记住我”cookie是md5(username+secret),而secret是硬编码在客户端JS里的。等于把密码本和锁一起给了你。

防御手段其实不复杂,但需要开发者在架构层面想清楚。第一,cookie里不要放敏感信息,放一个随机生成的session ID就够了,真正的权限数据存在服务端。第二,给cookie加上HttpOnly和Secure标记,前者让JavaScript读不到,后者只走HTTPS。第三,签名。就算要在cookie里放数据,也得用服务端密钥做HMAC签名,客户端改了内容签名就对不上。第四,别自己发明加密方案,用成熟的JWT或者服务端session框架。

我自己的习惯是,每次登录一个新网站,先打开开发者工具看一眼cookie。如果看到user_id=123、is_admin=false这种明文键值对,心里就咯噔一下。不是说一定有漏洞,但这种设计思路本身就让人不放心。反过来,如果cookie是一长串毫无规律的字符,或者是个结构规整的JWT,至少说明开发者想过这个问题。

说到底,cookie欺骗能成功,根子上是信任边界没划清。客户端的一切输入都不可信,cookie也不例外。它只是HTTP协议的一个补丁,不是安全机制。把权限判断交给cookie,就像让嫌疑人自己写口供,还不用签字画押。

Tags:

相关文章

  • 网赌群

    娱乐

    凌晨两点十七分,老周在群里发了个红包,200块,分20个。群里瞬间炸了,三十七个人抢,手气最佳的是个叫“阿凯”的,抢了43块6。老周紧接着甩了张截图——他押的“大”,赢了,本金翻倍。群里一片“666” ...

    【娱乐】

    阅读更多
  • 擅自利用互联网销售彩票案例

    娱乐

    2023年秋天,浙江义乌的小周在手机浏览器里点进一个“体育竞技预测平台”,页面做得比官方体彩App还精致——实时赔率滚动、主播喊单、充值送彩金。他注册后三天内充值1.2万元,等想提现时,平台客服先要他 ...

    【娱乐】

    阅读更多
  • 小刀软件娱乐网网址

    娱乐

    小刀软件娱乐网的网址,是xdrj.com。这个域名我记了五年,不是因为它好记,恰恰因为它难记——xdrj,小刀软件的首字母,后面跟着“rj”两个字母,怎么看都像随手敲的。但就是这串字符,在2018年到 ...

    【娱乐】

    阅读更多


友情链接