1
raincious 2014-08-06 12:09:41 +08:00
不知道你说的是哪些网站。但改密码要注销是常规吧?
我的设计是改密码必须重新输入原密码+新密码+新密码确认。如果原密码输入错了3次也会注销。 |
2
love 2014-08-06 12:18:24 +08:00 1
是这些网站的问题,把userid简单地做个hash存在cookie里,而不是和密码+邮箱一起做个hash,这样密码改变后cookie里的userid还是能通过验证。
|
3
airyland 2014-08-06 12:23:59 +08:00 via Android
可能cookie包含了用户信息没有清除,或者session没有destroy。总之就是网站的问题。
|
4
hizhengfu 2014-08-06 12:24:53 +08:00 1
改密码成功后重新把有效的cookie设置下就可以了。这样设计不觉得方便一些吗?
|
5
bjzhush 2014-08-06 12:26:31 +08:00
这取决于具体的 凭证 是否 密码相关,举个简单的例子,
密码相关 session[auth] = md5(passwd+salt) 密码无关 session[auth] = md5(userid+salt) 关于: 印象中很多站点在更改密码后没有强制重新登录的设计,这是为什么? 大部分这种情况还是设计考虑的不到位,没有深入考虑到安全 |
6
explon 2014-08-06 12:28:19 +08:00
因为把 Session 里的信息也改了
|
7
mornlight OP @explon 唔,你说得很有道理。如果是这样的话那就免除了重新登录的步骤,是个好的体验。
不过应该有很多网站的确没考虑到这个风险,我遇到过不少在Chrome上更改了密码,在Firefox上以前的登录状态还保留的情况。 |
8
humiaozuzu 2014-08-06 12:49:29 +08:00
很多网站用的 client side session
|
10
huangyan9188 2014-08-06 13:08:54 +08:00
楼上的楼上 说的是对的,cookie里面应该放sha1(token+username)而不是密码,不管铭文还是密文都不要出现
|
11
Narcissu5 2014-08-06 13:41:46 +08:00
cookie被盗为什么要改密码,重新登录不就完了么?
|
12
mornlight OP @Narcissu5 嗯,的确是。但也有可能,保存cookie的浏览器我不使用了或者清理cookie了。不注销的话服务端那边还会一直认为有效的吧。
|
13
alex321 2014-08-06 14:12:13 +08:00
有一些这类网站是保存当前的登录状态的。
流程上来看,如果你更改密码,那么先验证之前的密码或者已经设置的安全手机或邮箱,然后输入并确认新密码,完成密码更换操作后,你的登录状态还是有效的,没必要一定要退出来让你重新登陆一遍。 一般情况下,只有在你需要访问敏感数据或者即将产生关系个人财产的时候采取要做密码的输入验证操作。 |
14
love 2014-08-06 14:29:56 +08:00
@jasontse @huangyan9188 都和服务器保密串hash过了凭什么不能放在cookie?不放密码怎么做到改密码后使所有设备的cookie立即失效?
@Narcissu5 当你丢了台笔记本,紧急回家换台电脑改各种帐号密码,然后小偷却还能用笔记本上的cookie保持在登录状态你是什么心情? |
15
mornlight OP @love 密码内容不放到cookie里是有道理的,hash过也存在被逆向的可能。
让cookie失效只需要在服务端保存session的地方将这个session设置为失效即可。验证session通过数据库或者缓存的内容来,而不是根据算法来。 |
17
jarlyyn 2014-08-06 17:55:07 +08:00
为啥改好密码要注销?
记住登录状态不是记录uid么。 要从安全期间,不是因该是进行敏感操作需要再次输入密码么? 一般网页都是可以在多个浏览器/地址登录同一个地址吧,不会去做这种强制登出啊。 |
18
jarlyyn 2014-08-06 17:59:57 +08:00
@love
1.我掉了笔记本也不会去修改密码,crypt-dm全盘加密的。只能看到的/boot 2. 我不觉得小偷能用cookie保持在线登录有啥特别大的问题。。。。凡是安全敏感的应该都不会有长时间的session有效期。 3.凡是加密都是不可靠的,只不过是在指定时间内可靠而已,不存在可靠的加密。 |
19
mornlight OP @jarlyyn 你知道服务端一般是怎么得知是哪个用户请求了页面的吗?修改了密码,但有效cookie没有更改的话,其他人可以偷取cookie然后冒充你。
|
20
zoudm 2014-08-06 21:12:55 +08:00
|
21
jarlyyn 2014-08-06 23:58:15 +08:00
@mornlight 我想我知道。然后呢,被冒充了又怎么样呢?
对于服务器来说,每次访问页面都验证session中的密码信息,这未免也代价太大了。 多个页面/浏览器可以同时登录,修改密码不注销,关键业务再次验证密码,不是现在通用的方式么? |
22
huangyan9188 2014-08-07 00:35:14 +08:00
@love 这个年代你还在信hash真心年轻了。。。。。。cookie里面放的是signature 也就是签名,但是这个签名是属于token机制的,它与时间戳等其他相关,修改完密码之后原来signiture就会失效,换成了新的token和新的signature。。。。还像你那样,简单的XSS攻击就足够知道你的信息了
|
23
huangyan9188 2014-08-07 00:49:48 +08:00
|
24
huangyan9188 2014-08-07 01:00:00 +08:00 1
|
25
jarlyyn 2014-08-07 10:06:48 +08:00
@huangyan9188 你说的是APP/应用程序吧?非web的程序当然可以把控制精度做到连接,那么只需要在链接以及重连的状态时验证身份就可以了。同时,可以采取断开连接的方式,来进行强制操作。
而web/http天生是无状态的。一般很少用连接的方式去做,由于无法有断开链接/推出的事件,一般的程序也不会倾向于按照链接当时来做吧。 我的理解是这样,有什么问题吗? |
26
jarlyyn 2014-08-07 10:19:18 +08:00
@huangyan9188 去检查了,的确,github,v2ex都是修改密码后注销用户所有连接的。看来的确是自己考虑不周。
|