冤枉!浏览器缘何会丢失 Cookie

问题描述
最近一段时间用户总反应使用 GOSURF 的时候经常丢 cookie。问我是否内核里面做了一些错误的修改。我检查许久也没什么头绪,唯一觉得不同的就是,只在运行期加载 GOSURF 自己的用户标示
(User agent)。网上搜索一下关于丢 cookie 的文章,大部分都直指国内最红火的Discuz论坛。也看见该站技术人员解释道:因为 cookie 的有效期、作用域造成丢失,需要通过修改论坛设置就可解决。但是事实上,在我机器上各个Discuz论坛疯狂丢 cookie 的同时,那些国外的 vbbipb 论坛相安无事。所以我认为官方的说法有误,并进行了一番研究。

实际情况:
研究发现,
Discuz论坛程序在网站安全方面有这样的处理。如果 SecurityId 发生了变化,将删除原先的 cookie,并且提示用户重新登陆。而这个 sid是把用户标示联合其它变量计算而得。那么一旦用户标示发生了改变,sid 肯定也会随之改变,从而导致Discuz论坛错误的删除 cookie。如果你频繁切换使用 MSIE 和 GOSURF (包括其它外壳浏览器) 就容易出现这个问题了。(注:我仅检查了 Discuz v5.0 版的代码)

解决方案:
也有些临时的解决方案。比如使用固定或不主动添加用户标示的浏览器。还可以象
Firefox 一样,使用区别于 MSIE cookie 系统。但是要真正解决这个问题,还是希望 Discuz 论坛做出回应。Discuz 论坛无疑是国内最优秀的论坛程序之一,或许是出于安全性的考虑吧,但这样的设计未免欠妥。不知道是否他们还有其它的考量。外壳浏览器虽然不属于正规军,但是在市场的份额是必须得到承认的。因此,尽可能的兼容性各个浏览器,应该是产品设计时候需要周全考虑到的。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值