оставайтесь в системе в приложении php в течение +1 недели - PullRequest
5 голосов
/ 10 июля 2010

У нас есть php-приложение, написанное на Zend Framework, и мы задаемся вопросом, что будет лучшим способом, если мы хотим, чтобы наши пользователи входили в систему более одного дня, например, неделю или даже больше.

Нужны ли нам сеансы для этого? (использует табличное пространство и память?) или лучше работать с куки? (Безопасность?)

Ответы [ 3 ]

3 голосов
/ 10 июля 2010

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

Идентификатор , обычно , хранящийся в Cookie.Установите срок действия cookie-файла сеанса на одну неделю, и все готово для того, чтобы пользователи вошли в систему на неделю.

См.

1 голос
/ 10 июля 2010

«Помни меня» - это всегда дыра в безопасности, что бы ты ни использовал - куки или сеанс - кто-то может (теоретически) украсть куки и, таким образом, войти в аккаунт без пароля. Есть способы повысить безопасность, позволяя вызывать только по одному IP. Файлы cookie являются AFAIK менее безопасными, однако это зависит от того, как вы используете аутентификацию. Например, сохраняя хеш-пароль в cookie-файлах, вы почти даете злоумышленнику реальный пароль (который можно запретить, его можно использовать в других веб-приложениях), поскольку существуют словари для получения простых паролей из хеш-кода. Соленый хеш помогает не сильно.

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

1 голос
/ 10 июля 2010

Строго говоря, вам не нужны сеансы. Вы путаете две вещи:

  • Сеансы используются для хранения данных на стороне сервера для конкретного пользователя. Это, вероятно, будет включать имя пользователя, под которым пользователь вошел в систему. Сеансы обычно относительно недолговечны (например, истекают через несколько минут или часов бездействия). Сеансовые файлы cookie (т. Е. Файлы cookie, срок действия которых истекает после того, как пользователь закрывает браузер) обычно используются для привязки данного пользователя к данному сеансу, хотя могут использоваться и другие другие методы, такие как передача идентификатора сеанса в URL (остерегайтесь фиксации сеанса в данном случае).
  • Для долговременных входов в систему обычно хранятся учетные данные пользователя или некоторые среднесрочные суррогаты учетных данных пользователя в несессионном cookie, срок действия которого истекает через несколько недель или месяцев. Всякий раз, когда пользователь не имеет активного сеанса, связанного с ним, эти учетные данные используются для запуска такого сеанса без взаимодействия с пользователем.

Таким образом, в основном файлы cookie используются для двух целей: для хранения идентификатора короткого сеанса (в минутах или часах) и для хранения учетных данных пользователя в течение нескольких дней / недель / месяцев.

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