Почему бы не использовать встроенную обработку сессий PHP? - PullRequest
11 голосов
/ 28 апреля 2010

Есть ли в настоящее время - или когда-либо - были какие-либо серьезные или существенные проблемы со встроенной обработкой сеансов PHP?

Я имею в виду, это всегда работало для меня и моих проектов.

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

Ответы [ 5 ]

12 голосов
/ 28 апреля 2010

Плюсы и минусы встроенного в PHP обработчика сессий

  1. Плюсы:

    1. Простота в использовании (просто используйте session_start() и все готово)
    2. Доступен OOTB.
  2. Минусы:

    1. Использует только SESSID (или SID , SESSIONID и т. Д.) Cookie для распознавания пользователя. Это не так много, и эту информацию можно легко украсть, используя XSS-атаки или что-то в этом роде.
    2. В большинстве случаев вы не можете выполнять такие действия, как получение общего количества активных сеансов (часто используется в Кто в сети? функций)

Плюсы и минусы собственного обработчика сессии

  1. Плюсы:

    1. Работает так, как вы хотите, чтобы оно работало
    2. Полный контроль над тем, как вы узнаете пользователей. Вы можете использовать cookie, IP-адрес, подпись браузера, чтобы гарантировать невозможность кражи сеанса (или, по крайней мере, это намного сложнее).
    3. Вы можете выбрать место, где хранятся данные сеанса (база данных / файловая система)
    4. У вас есть контроль над механизмом сессии в целом
  2. Минусы:

    1. Вам нужно потратить несколько минут, чтобы создать такой обработчик
11 голосов
/ 28 апреля 2010

Есть ли в настоящее время - или есть там когда-либо был - любой серьезный или значительный проблема со встроенной сессией PHP обработка

Нет проблем со встроенными обработчиками. Доступ и удаление старых файлов сеанса реализованы хорошо.

Это заново изобретать колесо? Или же улучшить некоторые недостатки? Какие недостатки?

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

5 голосов
/ 28 апреля 2010

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

Это действительно открывает целый новый набор возможностей:

  • Создание инструментов управления сеансами для администраторов сайтов
  • Аудит данных сеанса пользователя.
  • Возможность заблокировать учетную запись пользователя и легко убить активные сеансы
  • и т.д.
1 голос
/ 28 апреля 2010

Причиной использования собственных обработчиков сеансов может быть внедрение системы единого входа или совместное использование сеансов с другими приложениями (= проверка сеансов Java / CF / любым другим приложением).

0 голосов
/ 28 апреля 2010

Сеансы могут быть только до определенного размера нет?

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