如何在PHPSESSID cookie中设置PATH?

6
我有很多项目在我的服务器上运行,它们都使用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的路径?
2个回答

7

默认情况下,会话cookie会在当前路径创建,除非您将其更改为在任何其他路径或'/'上保存cookie。

您可以告诉自己的脚本将会话cookie保存在特定于项目的目录中。您可以使用session_set_cookie_params来实现。必须在session_start()之前调用此函数。

session_set_cookie_params(0,'/dirname'); 

0

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

session_name("application-1");

1
这将会向其他应用程序公开会话ID,从而打开了一个额外的攻击向量。 - cdauth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接