Я не уверен, что это обычный случай использования, но я нормальный парень, поэтому не могу поверить, что это необычно:
У меня есть сервер, на котором запущен ЛАМПА стека. На сервере имеется несколько PHP приложений. На днях я заметил, что два совершенно разных приложения делятся информацией о сеансе. WTF ?! Я понимаю, что они делают, но почему? они доверяют серверу, но почему сервер предполагает, что два приложения доверяют друг другу?
хорошо: исправление # 1 для одного или обоих применяет session_name (). Это превосходно, и это решает проблему, если один или оба из них делают это, и никто не пытается получить сеанс других, задавая имя, но есть ли исправление, когда оба приложения враждебны друг другу? Есть ли на уровне PHP что-то, что может сделать сеансы независимыми, независимо от того, что приложения могут пытаться сделать? информация о https://www.server.com/app2/index.php et c .....
Я думал, что установка пути с помощью session_set_cookie_params () могла бы решить эту проблему, но нет, установка этой переменной ограничена путь на самом деле не имеет очевидного эффекта, который интересен - оба приложения # могут все еще добраться до сессионного материала или другое - интересно!
Я не могу поверить, что это новая проблема, и все же я не замечаю fix ....
Приветствия,
turbotas
Пример кода:
<?php
session_set_cookie_params(3600,"/webapps/test1");
session_name("mysession");
session_start(); ?>
<html>
<head>
</head>
<body>
<?php echo session_id(); ?>
</body>
</html>
представьте этот код в webapps / test1 и точно такой же в webapps / test2. Я не ожидал бы, что test2 сможет использовать состояние сеанса test1, просто указав каталог вне своей собственной точки установки - я бы ожидал, что PHP защитит от этого. Это не так - я получаю ту же сессию.