【问题标题】:How do I set the PATH in the PHPSESSID cookie?如何在 PHPSESSID cookie 中设置 PATH?
【发布时间】:2012-04-10 17:53:12
【问题描述】:

我的服务器上运行了许多项目,所有这些项目都使用 PHP 会话进行身份验证。

现在,由于 PHPSESSID cookie 在 set-cookie 标头中将 cookie 路径设置为“/”,因此该 cookie 在整个域中都可用,而我需要它仅对当前应用程序可用。

因此,出现以下问题:

登录到 mysite.com/application-1 的用户会自动登录到

  1. mysite.com/application-2
  2. mysite.com/application-3
  3. mysite.com/application-4

..等

那么,我该如何设置 PHPSESSID cookie 的路径呢?

【问题讨论】:

    标签: php cookies session-cookies


    【解决方案1】:

    默认情况下,会话 cookie 使用当前路径创建,直到您将其更改为将 cookie 保存在任何其他路径或'/'

    您可以告诉您的脚本将会话 cookie 保存在项目特定目录中。您可以为此使用session_set_cookie_params。这必须在session_start()之前调用

    session_set_cookie_params(0,'/dirname'); 
    

    【讨论】:

      【解决方案2】:

      您只需为每个站点指定会话名称,它会将它们的会话彼此分开。

      session_name("application-1");
      

      【讨论】:

      • 这会将会话 ID 暴露给其他应用程序,从而打开额外的攻击向量。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-19
      • 2011-10-12
      • 1970-01-01
      • 2016-08-15
      • 2014-08-03
      • 2019-07-31
      相关资源
      最近更新 更多