OSChina 的验证机制是怎么实现的?

大龙虾 发布于 2012/02/28 20:24
阅读 383
收藏 7
OSChina 的验证机制是怎么实现的?全部是通过cookie加密?具体怎么实现的能分享一下吗?
加载中
2
红薯
红薯

cookie 中包含的最重要的信息是用户的唯一标识信息,然后你可以将这个标识加密后设置为cookie值

例如你可以生成这样的字符串 USERID#USER_IP#USER_AGENT#时间戳 ,然后使用对称加密转成密文作为 cookie 的值,服务器在接收到这个 cookie 的时候用密钥解密,然后提取 USERID 到数据库查用户资料,就得到了当前登录用户的信息

这是一个最简单的过程,实际使用还要再考虑增加一些可变因素

红薯
红薯
@hil2010 yes :)
FoxHu
FoxHu
@红薯 : 哦,明白了,谢谢!cookie.setMaxAge(-1);是这样吗?
红薯
红薯
@hil2010 把cookie的有效期设置为 -1 就可以
FoxHu
FoxHu
@红薯 : 谢谢老大,如果不关闭浏览器就一直有效吗?这个怎么实现啊?Tomat默认session有效期是30分钟,怎么实现用户不关闭浏览器就一直有效呢?
红薯
红薯
@hil2010 这个登录信息在你关掉浏览器后就失效了
下一页
0
大龙虾
大龙虾
爱特 红薯
0
鉴客
鉴客
这种属于机密问题,你就别难为 @红薯
0
大龙虾
大龙虾

引用来自“鉴客”的答案

这种属于机密问题,你就别难为 @红薯
呵呵,我就是想大致了解下思路,平时都是用session,就是想知道cookie怎么实现的,还有思路
0
大龙虾
大龙虾

引用来自“红薯”的答案

cookie 中包含的最重要的信息是用户的唯一标识信息,然后你可以将这个标识加密后设置为cookie值

例如你可以生成这样的字符串 USERID#USER_IP#USER_AGENT#时间戳 ,然后使用对称加密转成密文作为 cookie 的值,服务器在接收到这个 cookie 的时候用密钥解密,然后提取 USERID 到数据库查用户资料,就得到了当前登录用户的信息

这是一个最简单的过程,实际使用还要再考虑增加一些可变因素

那怎么让这个cookie在被恶意修改后失效了?

我看OSCid就最后几位 每次重新登录后不一样。。还有就是OSC用的是不是DES加密?

红薯
红薯
别人修改后的cookie,你解密就会失败,一定要保护好加密算法。
0
大龙虾
大龙虾

引用来自“tianshupei88”的答案

引用来自“红薯”的答案

cookie 中包含的最重要的信息是用户的唯一标识信息,然后你可以将这个标识加密后设置为cookie值

例如你可以生成这样的字符串 USERID#USER_IP#USER_AGENT#时间戳 ,然后使用对称加密转成密文作为 cookie 的值,服务器在接收到这个 cookie 的时候用密钥解密,然后提取 USERID 到数据库查用户资料,就得到了当前登录用户的信息

这是一个最简单的过程,实际使用还要再考虑增加一些可变因素

那怎么让这个cookie在被恶意修改后失效了?

我看OSCid就最后几位 每次重新登录后不一样。。还有就是OSC用的是不是DES加密?

在id被解密出来后是不是查询数据库,如果有就说明正确,然后把查询到的信息放到缓存中。去另外一个页面的时候,还是解密出id,然后去缓存查,有就说明是登录状态?
大龙虾
大龙虾
好的,谢谢啦
红薯
红薯
基本上流程就是这样的,其他的你自己发挥了:) 到此为止
返回顶部
顶部