怎么牛了?难道除了sessionId之外,还有其他参数传递给了服务器,从而识别出用户B没有使用session的权限?

解决方案 »

  1.   


    SessionID是只读的,用户B会被要求登录,会有一个新的SessionID。
      

  2.   


    whoami333  您所说的只读是什么意思?用户B把用户A的URL拷贝过去,为什么一定会出现新的sessionID呢?不是已经将sessionID加入到参数当中了吗?如果这个id存在cookie当中,用户B把cookie整个拷贝过去不就可以了(排除网站在cookie当中加入了其他参数的前提)?
      

  3.   

    SESSIONID是你登录成功的时候被赋值的, 中间直接调用做判断就可以了,并不用再次赋值,~~  你从URL上加再多的SESSIONID都没有用滴
      

  4.   

    对于 rebing 的话不甚明了1.“被赋值”,是说客户端被分配了一个sessionID对吧?那么sessionID肯定存储在客户端吧?
    在不加密的情况下,如果客户端支持cookie,那么,我们肯定可以通过cookie获取这个sessionID,如果禁用cookie,那么URL上面会出现sessionID当然有些.Net应用在一些禁用了cookie的客户端机器上可能不会把sessionID写在URL当中,听其他网站的大虾说,是因为内存中缓存了这个sessionID既然在禁用cookie的时候,是通过URL传递sessionID的,那客户端直接把这个URL地址拷贝过来不就可以获取其他人的session了不是吗?
    2.就比如用户A已经登录,他被分配了一个sessionID,拷贝他浏览器中的URL地址到别人的机器,再用这个URL来访问,这个操作的意图并不是要给服务器的某个session“再次赋值”,而是通过sessionID来获取一个已经登录的session的访问权限
    3.对于“中间直接调用”是指在服务端还是在客户端?这句话在下确实看不太懂,还望不吝赐教~~
    假定您的意思是指在服务端。可是,大家都知道无论是通过cookie还是URL重写,登陆后的用户,被分配的sessionID,是在每次客户端发出其他请求时,由客户端传递过来的,如果“直接调用”呢?
    如果您的意思是指在客户端,在下就更晕了,还望您能说明一下,谢谢!