免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4112 | 回复: 7
打印 上一主题 下一主题

关于判断是否是登录状态 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-04 17:23 |只看该作者 |倒序浏览
一般是在用户成功登录后,在cookie和session写入变量,
在以后判断是否登录时检查cookie变量和session变量是否是指定的值来判断是否已登录.

但是cookie和session id在理论上都可以被外在的其它人获取的,当被获取后获取者就可以得到用户的所有权限.

我想问下可以通过什么策略解决这个问题?

论坛徽章:
0
2 [报告]
发表于 2009-07-04 20:24 |只看该作者
安全性要求高的话就上https吧,一定程度上可防监听。

论坛徽章:
0
3 [报告]
发表于 2009-07-04 20:34 |只看该作者
可以通过 secure cookie 策略。下面有一篇论文:

http://www.cse.msu.edu/~alexliu/publications/Cookie/cookie.pdf

当然论文之中谈到 session key 也就是 SSL 才存在的东西,这个东西可以用 server key + ip hash 来代替。虽然不能保证 100%,但是一般来说,安全性已经足够。从理论上 secure cookie 基本上可以防止 relay attack,也就是解决你所担心的问题。但是对于来自同一 ip 的 relay attack 仍然不行。而且更换 ip 后则不能保持登录状态。

评分

参与人数 1可用积分 +5 收起 理由
bs + 5 回答贴切

查看全部评分

论坛徽章:
0
4 [报告]
发表于 2009-07-04 21:34 |只看该作者

回复 #3 dz902 的帖子

没有其它的办法了吗

论坛徽章:
0
5 [报告]
发表于 2009-07-04 23:11 |只看该作者
原帖由 songshu07 于 2009-7-4 21:34 发表
没有其它的办法了吗


其实你可以把这个问题给抽象化一下,就会发现解决方案的存在空间就只有那么小而已。

问题是:在无状态的连接状态下,如何防范 relay 和 repeat 攻击。

解决的可能的方案有:

1、把无状态的连接(HTTP)变成有状态的连接(SSL)。这个和问题题面冲突,就不提了。
2、模拟有状态的连接。模拟的办法有两种:一,使用客户端可以用于认证的信息,在目前情况下,只有 IP 而已,而且只能作为当前会话的认证;二,使用只有服务器端知道的信息,例如 server key,用这个加密编码一个客户端可以用于认证的东西。

所以,实际上把问题抽象化之后,很清楚就能看到,只有这两种解决方案而已。

这种无状态的连接,就好像,住在两个山头的酋长,靠一个信使来沟通。假设信使不可靠,怎么知道信使送来的信是真还是假?只有两个办法,用酋长 A 或者 B 无法模仿的签名,要么用只有酋长 A 知道的办法加密。

论坛徽章:
0
6 [报告]
发表于 2009-07-04 23:12 |只看该作者
LZ的系统是哪方面应用
讨论这方面,没有绝对的安全,只有相对的解决方案

论坛徽章:
0
7 [报告]
发表于 2009-07-05 09:26 |只看该作者
可以考虑用memcache,如果你的有的话,不过每次头上都需要检测

论坛徽章:
0
8 [报告]
发表于 2009-07-05 20:26 |只看该作者

回复 #7 南无小和尚 的帖子

具体是怎么做呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP