Нужны ли разные сессии для разных сайтов? - PullRequest
1 голос
/ 18 февраля 2010

У меня есть несколько веб-приложений (PHP), которые обслуживаются для разных клиентов из их собственного домена. Каждый домен, очевидно, имеет отдельные файлы cookie и сеансы (с правильно заданными доменами и путями).

Нужно ли мне устанавливать в базе данных совершенно отдельную таблицу сеансов для каждого веб-сайта, чтобы попытаться обеспечить уникальные сеансы? Я предполагаю, что мне это не нужно, потому что, если бы мы использовали сеансы с файловой поддержкой, то каждый сервер использовал бы одно и то же хранилище сеансов. Так что я предполагаю, что с DB-хранилищем я могу просто повторно использовать таблицу.

Просто с кодом сеанса (я использую ADODB) я не вижу кода для обработки коллизии идентификатора сеанса во время создания сеанса.

Ответы [ 2 ]

1 голос
/ 18 февраля 2010

Это не вызовет проблем в вашем приложении, однако, ради безопасности, я бы использовал разные таблицы, если консолидация всех сессий не является частью какой-либо функции на вашем сайте.

Я не делал этого раньше, но я действительно не думаю, что будут какие-то проблемы.

0 голосов
/ 18 февраля 2010

Вы можете изменить идентификатор сеанса, включив короткий префикс сайта. Просто измените ваш сеанс создания так, чтобы он вызывал session_id ($ new_id) перед созданием сеанса.

Это также позволит вам перечислить все текущие сеансы для каждого сайта в поисках префикса. Более оптимальным решением было бы разделить сеансовый ключ на два поля, индексированные как по префиксу, так и по уникальному ключу - префиксному индексу. Вам потребуется изменить функцию создания сеанса, чтобы реализовать это.

Вы можете даже подтвердить этот префикс и отклонить сеанс, если он привязан к другому веб-сайту, что повышает безопасность.

В противном случае, если ваш идентификатор сеанса сгенерирован правильно, у вас не должно быть проблем с коллизиями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...