为什么很多网站在更改账户密码后,原 cookie 仍然有效?

2014-08-06 12:08:01 +08:00
 mornlight
我更改了自己的账户密码,改完后我仍然还是登录状态,可以进行操作。印象中很多站点在更改密码后没有强制重新登录的设计,这是为什么?
如果我的cookie被盗,对方就可以冒充我的身份,我改密码都没有用。大家设计自己网站的时候,会在一个账户更改完密码时在数据库中注销掉它以前所有的有效session吗?
7265 次点击
所在节点   科技
26 条回复
jarlyyn
2014-08-06 23:58:15 +08:00
@mornlight 我想我知道。然后呢,被冒充了又怎么样呢?
对于服务器来说,每次访问页面都验证session中的密码信息,这未免也代价太大了。
多个页面/浏览器可以同时登录,修改密码不注销,关键业务再次验证密码,不是现在通用的方式么?
huangyan9188
2014-08-07 00:35:14 +08:00
@love 这个年代你还在信hash真心年轻了。。。。。。cookie里面放的是signature 也就是签名,但是这个签名是属于token机制的,它与时间戳等其他相关,修改完密码之后原来signiture就会失效,换成了新的token和新的signature。。。。还像你那样,简单的XSS攻击就足够知道你的信息了
huangyan9188
2014-08-07 00:49:48 +08:00
@mornlight @love 关于你的
“@mornlight 加密要么是可靠的,要么是不可靠的,不存在有可能被解密的可能”就是在抬杠,如此无意义的言论。。。。不懂cookie跟session随机状态机制就别来搀和
huangyan9188
2014-08-07 01:00:00 +08:00
@jarlyyn @mornlight 用户的信息确实要验证,但是现在的验证部分要通过比对,但是大部分的请求采用很快的的方法了,通过memcache类型的数据,在nginx端就直接将要验证的信息作为索引去取cache中的内容,但是如果用户关键信息变了的话,如果还是这样的请求,会将response状态转为重新登录,然后memcache中的该用户信息就会换为新的,你去试试微信,大象笔记,利用heartbeat保持session,如果用户的签名发生改变,就会让所有的heartbeat的客户端全部重新登录,cookie失效
jarlyyn
2014-08-07 10:06:48 +08:00
@huangyan9188 你说的是APP/应用程序吧?非web的程序当然可以把控制精度做到连接,那么只需要在链接以及重连的状态时验证身份就可以了。同时,可以采取断开连接的方式,来进行强制操作。
而web/http天生是无状态的。一般很少用连接的方式去做,由于无法有断开链接/推出的事件,一般的程序也不会倾向于按照链接当时来做吧。
我的理解是这样,有什么问题吗?
jarlyyn
2014-08-07 10:19:18 +08:00
@huangyan9188 去检查了,的确,github,v2ex都是修改密码后注销用户所有连接的。看来的确是自己考虑不周。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/126370

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX