说说会话串号

说起淘宝网用户串号,我的印象里技术bug原因的有两起。2010年,这个串号持续的时间比较长,我估计应该存在几年时间了。从淘宝的论坛里隔三差五会爆出案例来,xxx突然在访问我的淘宝页面时进入了别人家的账号,第一感觉是发现“所有已买到的,或者已卖出的商品”都不是自己的,并且可以对这些信息进行任意的操作,比如删除,下架。

    另一起是,淘宝2012年11的时候爆出来的串号,突然有个卖家告诉我他进入了别人的店铺,并且可以进行任意的操作。

    另外还有一种串号的场景,不过不是由于系统bug引起的,主要是因为数据被缓存引起的串号,这种串号不是真正意义上的串号,因为页面被isv或者某个局域网缓存了,导致看到了别人的商品或者店铺,这种场景用户是不能对看到的页面和数据进行任何管理操作的。

一般这种串号场景我们会在url的后缀上加上一个时间戳,让每个用户的url都不一样,以防止缓存,比如在生成菜单等超链接的时候统一增加时间戳。

    淘宝因为历史原因,所有页面的url都是以htm结尾,这样容易被误认为是静态页面,所以被缓存了也不奇怪。这种类型的串号排查起来也比较简单,问题比较容易被确定,主要判断标准就是只看到了别人的页面,但是没有任何操作权限,并且在url后面加个&id=111之类的参数,页面立马就正常了。

重点说说前两期串号

    第一起称为“request异常引起的串号”,原因是和jboss的tomcat在实现request的时候对异常处理不够准确

Request.java的方法:protected void parseParameters()存在bug,request解析参数存在读取脏数据的可能,这样如果用户在login的时候,出现了这个bug,就有可能login成别人的账号。

http://anonsvn.jboss.org/repos/jbossweb/tags/JBOSSWEB_2_0_1_GA/src/share/classes/org/apache/catalina/connector/Request.java

    第二起称为“非法缓存引起的串号”,原因是店铺系统“shopsystem”在做静态化改造的时候,前置了一个缓存服务器,这个服务器错误的把http的头也给缓存了(头里包含setcookie),因为sessionID是由session框架的客户端在每个系统里创建的,如果http的头被缓存了,那么这个sessionID就会串成了别人的sessionID 。(这里有个疑问,之前cookie里有个签名用来比较和服务端加密出来的值是否一致,如果不一致会清空cookie和session信息,让用户退出登录,为什么这个行为没有被触发呢?按照这个场景,并没有把cookie信息进行修改,而只是修改了sessionID一个cookie,理论上客户端的关键cookie信息和服务端的信息应该是不一致的)

    这两起问题的排查周期都比较长,因为没有一个很好的办法可以识别这种串号问题,而且重现比较困难。既然有第二次串号,相信还会有第三次,第四次。那需要做一些什么事情来杜绝呢?或者有一些可以比较快速就能定位问题的方案。

为了解决串号做过的一些事情:

cookie里增加一个值,用来记录通过关键cookie生产的签名,这个签名是算法非常简单。每次请求到服务端的时候session框架代码里会对此签名进行匹配,如果和服务端获取的数据签名出来的值是一致的,则认为合法,否则清空session信息和cookie信息,让用户重新登录。

思考:session串号

1、能不能杜绝?

2、排查问题能不能更加快速?期望做到一旦发生串号可以被方便的发现,并且定位到是哪个系统导致的。

时间: 2025-01-21 12:45:02

说说会话串号的相关文章

Android读取用户号码,手机串号,SIM卡序列号的实现代码

以下是对Android读取用户号码,手机串号,SIM卡序列号的实现代码进行了介绍,需要的朋友可以过来参考下   1.使用TelephonyManager提供的方法,核心代码: 复制代码 代码如下: TelephonyManager tm = (TelephonyManager) this.getSystemService(TELEPHONY_SERVICE); String imei = tm.getDeviceId();       //取出IMEI Log.d(TAG, "IMEI:&quo

突发!知乎出现串号漏洞,大量用户隐私疑遭泄露

       如果你发现自己的社交账号被别人改写了简介会不会觉得惊慌. 如果你昨天刚刚用知乎账号匿名吐槽了你的老东家-- 今天下午,微信公众号三节课的布棉老师在登录自己的知乎账号时发现登陆上了"很困"的账号,并可以完全看到这名用户的私信与匿名回答.发现问题后,三节课的其他小伙伴也对问题再次做了证实,每次退出重新登录,都会换成与上一个陌生账号完全不同的陌生账号.而这种问题只出现在iOS端,Android端则一切正常. 看到消息时,雷锋网(公众号:雷锋网)也立刻登录了自己的账号,没有串号现

一部手机竟有两个串号

在手机店花1500元买来一部新手机,却发现手机上的串号和包装盒上的串号不一致,就连产品说明书上标明的手机型号跟买到的手机型号也不一样.日前,家住凤岗的新莞人周先生买到了这样一部"麻烦"手机. 周先生介绍,手机机身里和店方开具的收据上所标明的串号是"351514040881653",但包装盒上标的串号却为"359351039161777".再看手机型号:包装盒上写着诺基亚5230型号,说明书却是诺基亚5530.发现蹊跷后,周先生登陆专门查手机串号的

12306瘫痪出现串号问题 官方回应仍是“访问量剧增”

铁路总公司称访问量剧增致12306瘫痪从28日早晨开始,12306网站就 成了网友刷新.第三方"刷票"的焦点,系统问题不断显现.市民周先生早晨登录抢票,首次查询剩余车票还有300余张,但点击车票预订时,系统显示已经没票了.等他再次登录时,已经进不去了.部分 网友还反映,28日登录12306网站,经常显示"无法访问".而在 下午15时左右,一些网民在微博中反映,12306网站又出现了"串号"事故.网友"不死鸟"在其微博中反映,登

春运订票首日12306网站发生串号 用户隐私泄露

春运车票今日开售,而据多名 网友反映,12306网站今天15时左右发生串号事件,登录后可能看到其他用户的姓名和身份证号.目前该漏洞已修复.若近期有人以12306 客服人员为名,主动提供订票服务,并熟知您的姓名.身份证等,请千万不要汇款.

识别码串号苹果召回部分iPad2

见习记者 姚宏伟 周五,由于存在识别码串号重复的情况,苹果对于一部分Verizon版iPad 2展开了召回行动.由于出问题的iPad2均是为美国运营商定制的版本,因此并没有在国内发售,国内消费者无需担心手中的产品出现串号问题. 苹果方面表示,重复的识别码出现在非常少的一部分Verizon版iPad2中.据介绍,识别码主要用于iPad2这类移动设备在特定运营商移动网络中的基本认证,一般每一台机器都会有独一无二的编号,而这次的问题就是识别码出现了重复. 此前,在4月份时,Verizon版的iPad2

串号-一个浏览器打开同一个网站,用两个帐号,如何如何使两个帐号不串

问题描述 一个浏览器打开同一个网站,用两个帐号,如何如何使两个帐号不串 做了个网站,用一个浏览器两个帐号同时登录页,结果最终串到一个帐号上,怎么写能让 两个帐号不串,如果不能,请告诉我这是什么原因.我登录大企业的网站也是这样的问题, 比如网易邮箱啊什么的,这是为什么呢? 解决方案 如果是放在session中的话,是会串的.现在浏览器,不同的tab页都是session共享的,不像以前ie6,ie7不同页面session不共享. 解决方案二: 能不能我不确定,但可以回答你另一半的问题.用同一个浏览器

asp.net使用form身份认证“串号问题” ?

问题描述 我在使用form身份认证时遇到个问题,A用户登录后没问题,但是B用户登录登录成功后只要一刷新就变成了A用户,且有A用户所有权限.连着测试了好几个用户C.D.E用户都有这种情况,只要一刷新就变成A用户了.这个问题大家遇到过吗?怎么排查下如何解决呢?实在不知道问题在哪儿啊,给个思路吧~~~~~谢谢了 解决方案 解决方案二:是否将身份信息写到了static类型的变量里?.net应用中慎用static,应该放到session或cookies里解决方案三:引用1楼Z65443344的回复: 是否

Android读取用户号码,手机串号,SIM卡序列号的实现代码_Android

1.使用TelephonyManager提供的方法,核心代码: 复制代码 代码如下: TelephonyManager tm = (TelephonyManager) this.getSystemService(TELEPHONY_SERVICE);String imei = tm.getDeviceId();       //取出IMEILog.d(TAG, "IMEI:"+imei);String tel = tm.getLine1Number();     //取出MSISDN,