PHP会话持久性,不同的PHP应用程序,同一主机服务器

问题描述 投票:0回答:1

我不知道这是否是一个普通的用例,但是我是一个普通的人,所以我不敢相信这是不寻常的:

我有一台运行LAMP堆栈的服务器。服务器上有一些PHP应用程序。前几天,我发现两个完全不同的应用程序正在共享会话信息。 WTF ?!我知道他们这样做了,但是为什么呢?他们信任服务器,但是为什么服务器假定两个应用程序互相信任?

好的:#1修复是针对一个或两个都使用session_name()。太好了,并且如果它们中的一个或两个都这样做并且都没有通过设置名称来尝试获取其他会话,那么它确实解决了该问题,但是是否存在两个应用程序相互敌对的解决方法?在PHP级别上是否有某些东西可以使会话独立,而与应用程序可能尝试做的事情无关?

基本上没有什么https://www.server.com/app1/index.php确实应该可以访问的会话信息https://www.server.com/app2/index.php等.....

[我以为使用session_set_cookie_params()设置路径会解决这个问题,但是,不,将变量设置为受限路径实际上并没有明显的效果,这很有趣-两个应用程序仍然可以访问会话内容,或者-有趣!

我简直不敢相信这是一个新问题,但我没有找到解决方法。...

干杯,

turbotas

php session lamp
1个回答
0
投票

在编写不同的应用程序时,需要确保每个应用程序将其会话信息(服务器端)保存在不同的位置。例如,如果要使用文件保存会话,则session.save_path配置变量将指定主机端目录。如果要将会话信息存储在数据库表中,则应该使用其他表或更可能是其他数据库。

因此,即使以某种方式产生了相同的会话标识符,它也会为每个应用程序产生不同的结果,因为每个应用程序都引用了自己不同的主机端源。

© www.soinside.com 2019 - 2024. All rights reserved.