假如我把appache不同的端口指向不同的目录,比如192.168.0.1我指向c:/www文件夹(A网站),192.168.0.1:8080我指向d:/sss的文件夹(B网站),也就是两个不同的网站,但我在A网站中定义的session,在B网站中竟然可以取到,这样不是很不安全吗,假如我要是有两个域名,www.a.com和www.b.com,我把www.a.com指向A网站,把www.b.com指向B网站,两个网站没有任何联系,但是B中能取到A的session值,这样太不安全了,
也就是说如果两个不同域名的网站部在一个服务器上,那么两个网站的session可以互通了,
有人知道是怎么回事吗?

解决方案 »

  1.   

    不存在你的担忧,cookie 只与域名(ip)绑定
      

  2.   

    但现在我在A中定义的session在B中的确可以取到啊
      

  3.   

    如果两个不同域名的网站部在一个服务器上,那么两个网站的session可以互通了,
    有人知道是怎么回事吗?网站都是php的,
      

  4.   

    都是同一台服务器的话还真有可能。
    因为session是写在服务器上的,而且给客户端写了cookie叫phpsessionid,通过这个来获取session。我建议是写session的时候不要直接这样写:$_SESSION['id'] = 'userA';
    最好这样写:$_SESSION['www.a.com']['id'] = 'userA';这样就可以分开了,读写session是取决于程序员的。
      

  5.   

    但是php如果用var_dump($_SESSION)的话,照样可以取到
      

  6.   

    就看你怎么运用session了。var_dump都能获取也无所谓
      

  7.   

    那是因为你两个网站保存session的目录是相同的,你改变一下其中一个网站的session保存目录的话,那么就应该不会出现那样的问题了
      

  8.   

    我两个网站都是测试的,文件夹里都只有一个页面(index.php),没有什么session的目录啊
      

  9.   

    session_save_path函数,自己看手册理解去,没有你想的安全问题,session_id在服务器端都是唯一生成的,并且唯一对应一个用户。
    你可以调用session_save_path()函数,查看到你的服务器存放session文件的目录,然后以session_id为文件名找到对应的文件,当然你也可以在不同的系统下设置不同的session存放目录。
      

  10.   

    大家不要凭感觉说,你们可以做个试验试试,我的服务器上192.168.0.1指向一个网站,192.168.0.1:8080指向另一个网站,两个网站的session就可以互相取到
      

  11.   

    http://www.111cn.net/phper/30/PHP-Session-0606.htm