×

Loading...
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务

cookie的expire日期不是cookie内容的expire日期,明白了?

实现原理大致如下:

每次登录后,建立一个session,把session 建立日期、登录名保存到你的cookie里。即使开一个新的session,server也能从cookie知道你这个名字在某日某时某分某秒某毫秒登录的。你每刷一下,就刷新一下session日期,保存到cookie里。如果你过一段时间不刷(多久由server控制),server就认为那个登录过的名字过时了,就当你没登录过。这一切由程序控制,和你的cookie什么时候过期无关。

我见过有些forum,登录一下,半年后再来,你还在上面,这就是由于server不检查你最近刷新时间,只看cookie还在不在,你那cookie 2006年过期,你就一直上到2006年,除非你手动清楚cookie。
Report

Replies, comments and Discussions:

  • 工作学习 / IT杂谈 / 请问为什么我每天访问rolia都要登录呢! 看了一下IE的缓存,里面rolia的cookie好好的阿,expire in 2006! 甚至已经把rolia加到了IE 设置privacy里的网站名单里, 还是不行! 抓狂了! 请高手指点!
    • 哈.同一IP里面(比如你用了Router)你是不是有马甲在另外一台机上登陆?Rolia认IP的,一个IP只能同时有1个用户处於登陆状态.....
      • rolia会认IP?倒是头一次听说。觉得不会
        • 应该是的.因为我在公司有3台机3个马甲.只要1个马甲登陆,其他的就自动退出了(搞得我很郁闷).公司出口IP是不变的.所以可以肯定1个IP只能上1个马甲....
          • 真的那么肯定?我一个IE,一个firefox,同时登录相同或者不同rolia用户,没有任何问题。别告诉它们的IP不同。
            • 你试过登陆上去后能同时发贴吗? Anyway,我去装个firefox试一试。。。。。我的马甲。。。。浪里格朗。。。。。。
              • ie和firefox不可能共享cookie。所以在同一台机器上用不同的浏览器就能用不同的马甲。但如果是同一个浏览器就没戏了,新的cookie内容覆盖旧的了。
      • 没有啊!俺没有任何马甲啊!不过家里有台式机,笔记本,学校里也有台式机,我到哪里就用哪里的机子上rolia,这是不是有问题啊?
    • 看看你机器上的日期设置
      • 日期设置没问题的!
    • exactly happens to me, have to log on every day...??
      • You have to log on every day.
        • 可是那个rolia的cookie的失效日期问什么是2006年呢?呵呵呵,就是想弄明白。。。
    • cookie的expire日期不是cookie内容的expire日期,明白了?
      实现原理大致如下:

      每次登录后,建立一个session,把session 建立日期、登录名保存到你的cookie里。即使开一个新的session,server也能从cookie知道你这个名字在某日某时某分某秒某毫秒登录的。你每刷一下,就刷新一下session日期,保存到cookie里。如果你过一段时间不刷(多久由server控制),server就认为那个登录过的名字过时了,就当你没登录过。这一切由程序控制,和你的cookie什么时候过期无关。

      我见过有些forum,登录一下,半年后再来,你还在上面,这就是由于server不检查你最近刷新时间,只看cookie还在不在,你那cookie 2006年过期,你就一直上到2006年,除非你手动清楚cookie。
      • 这个是正解
        • 刚才仔细看了一下,rolia在我们的机器上建立如下cookie:
          quizSessionKey
          forumBno
          forumLastRefresh
          forumLastRefreshNew
          roliauser
          logintime
          keepuserid

          看名字,再看一下内容,大致都能猜到这些cookie干了些什么。

          cookie是不安全的,我见过专门的算法来fake cookie的。
          • cookie 还用的着什么算法。查查http协议就可以了。
            • 有协议不代表你能fake一个出来,cookie内容里面有以时间为种子计算出来的一个id,内容一改,id也相应要改,否则cookie就无效了。
              比方说,roliauser这个cookie里面有你的登录名字,但是不代表你可以随便改成另外一个名字,因为内容一改,cookie就无效了,除非你知道那个id的算法。
              • http://www.w3.org/Protocols/rfc2109/rfc2109 伪造cookie 很简单,只要
                telnet www.rolia.net 80
                POST /xxxxxxx HTTP/1.1
                Cookie: $Version="1"; roliauser="whatever"; $Domain="www.rolia.net"

                就可以。至于不同的浏览器具体存放cookie文件的格式,各有不同,但也没什么难的。如果系统的安全性取决于cookie文件的格式,那不堪一击。事实上几乎所有的网站用户登录后都会生成一个随机字串,存放在一个在线用户表中,服务器通过比较cookie中的串和在线表的串来确定用户身份。