PHPSESSID cookie-它是否允许访问同一服务器上的不同网站?

PHPSESSID cookie-它是否允许访问同一服务器上的不同网站?,php,session,cookies,Php,Session,Cookies,这是一个我想知道的场景。 假设我有以下几点: 运行以下网站的php/apache web服务器: /var/www/version1ofmyapp/ /var/www/version2ofmyapp/ Cookie已在用户的计算机上启用 web app在登录/注销时将数据写入会话 登录到version1ofmysite(从而创建一个名为PHPSESSID的cookie)会让我访问version2ofmysite吗? 例如,我登录到该站点的版本1,然后将URL更改为版本2,它只允许我登录,就好像我

这是一个我想知道的场景。 假设我有以下几点:

  • 运行以下网站的php/apache web服务器:

    /var/www/version1ofmyapp/

    /var/www/version2ofmyapp/

  • Cookie已在用户的计算机上启用

  • web app在登录/注销时将数据写入会话
  • 登录到version1ofmysite(从而创建一个名为PHPSESSID的cookie)会让我访问version2ofmysite吗? 例如,我登录到该站点的版本1,然后将URL更改为版本2,它只允许我登录,就好像我已经通过了身份验证一样。 我想更好地理解为什么会发生这种情况

    谢谢

    编辑1:


    同一域

    为域定义cookies,并且可以为路径定义cookies。因此,您可以限制发送cookie

    如果您有两个应用程序中使用的sessionID,并且使用相同的会话存储,则可以访问会话中保存的信息


    因此,在这两个应用程序中都使用了您正在登录的信息。您可以更改会话的名称(http://php.net/manual/en/function.session-name.php)要防止出现这种情况,或更改会话存储(http://php.net/manual/en/function.session-save-path.php)

    cookies是为域定义的,可以为路径定义。因此,您可以限制发送cookie

    如果您有两个应用程序中使用的sessionID,并且使用相同的会话存储,则可以访问会话中保存的信息


    因此,在这两个应用程序中都使用了您正在登录的信息。您可以更改会话的名称(http://php.net/manual/en/function.session-name.php)要防止出现这种情况,或更改会话存储(http://php.net/manual/en/function.session-save-path.php)

    在php.ini文件中,您可以配置服务器以允许:

    session.cookie_domain = ".mydomain.com"
    

    这将允许子域访问cookie。

    在php.ini文件中,您可以配置服务器以允许:

    session.cookie_domain = ".mydomain.com"
    

    这将允许子域访问cookie。

    cookie PHPSESSID仅限于创建它的域,并且将仅发送到该域或子域。如果在同一台服务器上有多个域,则每个域都有不同的PHPSESSID cookie

    如果您使用子域并希望在它们之间共享会话,则可以在调用会话启动()之前使用会话设置cookie参数($lifetime_in_seconds,“/”,“.mydomain.com”),以便在所有子域之间共享同一会话


    Cookie的作用域是通过主机名(误导性地称为域),然后是名称。只有在用于不同域(主机)时,才能有两个名为PHPSESSID的cookie。单个域不能有两个名称相同的cookie。如果尝试执行此操作,则会将其视为对已设置的域的更改。

    cookie PHPSESSID仅限于创建它的域,并且将仅发送到该域或子域。如果在同一台服务器上有多个域,则每个域都有不同的PHPSESSID cookie

    如果您使用子域并希望在它们之间共享会话,则可以在调用会话启动()之前使用会话设置cookie参数($lifetime_in_seconds,“/”,“.mydomain.com”),以便在所有子域之间共享同一会话


    Cookie的作用域是通过主机名(误导性地称为域),然后是名称。只有在用于不同域(主机)时,才能有两个名为PHPSESSID的cookie。单个域不能有两个名称相同的cookie。如果您尝试执行此操作,则视为对已设置的域进行了更改。

    您的域设置如何?换言之,这两个版本是否共享一个公共域,并且只共享子域更改,或者它们是完全不同的?站点的实际URL是什么?您的域是如何设置的?换句话说,这两个版本是否共享一个公共域,而只共享子域更改,或者它们完全不同?站点的实际URL是什么?如果我不想共享同一个会话怎么办?然后不要调用php_set_cookie_params()。调用start_会话时,域将设置为创建会话的子域的域。示例subdomain1.mydomain.com,这意味着当用户转到subdomain2.mydomain.com时,将为该域创建另一个名为PHPSESSID的cookie。在每个cookie中,该值将是服务器上的不同会话文件。换句话说,每个子域获得不同的会话,它们将不会被共享。这是默认行为,如果您不喜欢默认行为,您需要在另一个答案中使用php.ini方法,或者调用session_set_cookie_params。Erik这实际上不是我的代码。。。但是我搜索了php_set_cookie_参数,它没有被调用。如果启用了cookie,并且我创建了一个会话变量,php会自动创建这个cookie吗?我还检查了setcookie()。还签入了*.js以查找任何带有cookie的内容。但是我什么也找不到。如果我不想共享同一个会话呢?那就不要调用php_set_cookie_params()。调用start_会话时,域将设置为创建会话的子域的域。示例subdomain1.mydomain.com,这意味着当用户转到subdomain2.mydomain.com时,将为该域创建另一个名为PHPSESSID的cookie。在每个cookie中,该值将是服务器上的不同会话文件。换句话说,每个子域获得不同的会话,它们将不会被共享。这是默认行为,如果您不喜欢默认行为,您需要在另一个答案中使用php.ini方法,或者调用session_set_cookie_params。Erik这实际上不是我的代码。。。但是我搜索了php_set_cookie_参数,它没有被调用。如果启用了cookie,并且我创建了一个会话变量,php会不会