Php $\跨多个虚拟主机的会话

Php $\跨多个虚拟主机的会话,php,session,session-variables,Php,Session,Session Variables,我了解到,如果我与另一台主机共享一台服务器(我是这样做的,因为我有一台virtualhost),那么所有主机共享相同的$\u会话在所有主机上都是相同的 这是否意味着其他主机可以访问我存储在$\u会话中的一些变量 这是否意味着其他主机可以访问我存储在$\u会话中的一些变量 如果会话id相同,并且会话使用默认配置,我会说是。考虑到会话id很大,劫持的可能性很低,但同样,即使使用单个虚拟主机,任何事情都是可能的。这完全取决于你的特殊情况 但出于所有实际目的,我敢说你会没事的 祝你好运 检查以下各项的值

我了解到,如果我与另一台主机共享一台服务器(我是这样做的,因为我有一台virtualhost),那么所有主机共享相同的$\u会话在所有主机上都是相同的

这是否意味着其他主机可以访问我存储在$\u会话中的一些变量

这是否意味着其他主机可以访问我存储在$\u会话中的一些变量

如果会话id相同,并且会话使用默认配置,我会说是。考虑到会话id很大,劫持的可能性很低,但同样,即使使用单个虚拟主机,任何事情都是可能的。这完全取决于你的特殊情况

但出于所有实际目的,我敢说你会没事的


祝你好运

检查以下各项的值:

echo ini_get('session.save_handler');
echo ini_get('session.save_path');
如果您的save_处理程序是
文件
,并且您的save_路径是一个公共目录,如
/var/lib/php5
,那么您很可能与服务器上的其他用户共享会话存储。您仍然受到会话哈希id性质的保护,但如果您有敏感信息,可能需要进行更改。您可以将save_处理程序更改为类似sqlite的内容,并提供您自己的本地数据库文件,或者只需将save_路径更改为您拥有且具有最低权限的目录。您可以更改.htaccess文件中的保存路径:

php_value session.save_path = '/path/to/my/session/directory'
或者在PHP源代码中:

ini_set('session.save_path', '/path/to/my/session/directory');

编辑:但现实地说,如果您的信息敏感度足以保证进行此更改,那么您应该使用VPS,而不是共享服务器。

我不确定
$\u会话是否跨虚拟主机进行(取决于您的提供商,如果它们链接在一起),但只要您连接到同一个数据库,你可以只存储cookies(存储一个链接到不同数据段的随机标识符)。angelcool.net,但是这个ID是一个很长的随机生成的数字,这不意味着我的共同主机获得相同数字的机会很小吗?这不是关于apache虚拟主机,而是关于php会话存储。首先,如果不是唯一的话,我会考虑SAVEEL处理程序的替代方案是MycCask。除此之外,你还有一个完美的答案。你有我的投票权。在私人服务器上,同意。但是,我猜您不太可能访问共享服务器上的私有memcache守护进程。(但我已经很久没有使用共享服务器了,谁知道呢。)