浏览器每次访问已经访问过的了页面的时候,http头会把原来网页设置的cookie里面存的信息加载进去发给服务器。
倘若浏览器的cookie信息没有过期,而且在服务器这端session也没有过期,那么被加载进去的cookie中存在sessionID,那验证不就是通过了么?
我想知道PHP里面的session_start()是如何处理以Ctrl+N或Shit+点击链接方式打开的IE窗口与双击桌面上的ie图标打开的IE窗口的判定的。就是他怎么知道那个页面的打开是哪种方式!

解决方案 »

  1.   

    浏览器每次访问已经访问过的了页面的时候,http头会把原来网页设置的cookie里面存的信息加载进去发给服务器。
    倘若浏览器的cookie信息没有过期,而且在服务器这端session也没有过期,那么被加载进去的cookie中存在sessionID,那验证不就是通过了么?这个应该没问题的吧,如果浏览器不关闭的情况下你还要强制SESSION失效,或者说强制验证,那么你不是每打开一个页面都要登陆一次?
      

  2.   

    因为我想自己写一整个session的处理过程。以前了解的session就是会话的,而一个会话到离开这个网站就会结束了!如果再通过双击桌面的IE图标,然后复制曾经访问的该网站的链接,那么服务器这边应该会分配新的会话ID,因为这个一个新的会话。我现在的问题是,自己写的session处理过程是通过guid分配一个新访问的用户一个sessionID,并将其存在cookie里面。当这个用户把浏览器关闭了,然后再通过双击桌面的IE图标的方式,复制该网站已经登陆过的页面连接,我在服务器这边的验证就会通过。因为从cookie中提取出来的sessionID一直存在。
      

  3.   

    只要你开启了session.use_cookies = 1
    然后你的cookie未过期,并且服务器端的sessionid也未过期,则你再打开同样的地址,还是登陆状态
    可以用于伪造session
      

  4.   

    那我又想用COOKIE,又想服务器能分辨出那些是通过点击链接打开的页面,哪些是通过双击桌面IE图标然后粘贴网页网址的页面。
    服务器这边能做么?