2010-09-24 82 views

回答

2

你可以做这样的事情:

$name = session_name("name"); 
session_set_cookie_params(0, '/', 'domain.com'); 
session_start(); 

更多信息,请参见session_set_cookie_params

2

假设你的意思域是something.comsomeothersite.com,然后配置两个网站使用相同的目录为自己的会话文件,然后就在会话ID钉到站点之间的联系(/tmp):

http://something.com?sessionID=session_id_from_someothersite.com 
http://someothersite.com?sessionID=session_id_from_something.com 

然后在每次检查该参数时加载会话处理代码并加载它。

但是,以纯文本URL传递会话ID非常不安全。这就是会话固定攻击变得微不足道的原因。稍微更安全的方法是在每台服务器上使用POST表单以“登录”其他域并将会话ID作为参数传递。或者更好的是,传递加密的一次性使用令牌而不是会话ID。

如果你为他们服务作为同父域(siteA.example.comsiteB.example.com)的单独的子域,只需配置都设置在example.com他们的会话cookie,它会在两个站点之间共享。