Используете длительный сеанс? - PullRequest
0 голосов
/ 23 января 2012

Я настраиваю сценарий, который будет использоваться моим локальным пабом для показа пользователям слайд-шоу изображений, меню и т. Д. Мой URL будет принимать ключ (uuid), из которого мой сценарий будет запрашивать базу данных для связанного содержимогос ключом, основанным на идентификаторе компании.Сайт будет просто вращаться через изображения с помощью JavaScript или JQuery.

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

Я всегда использовал $_SESSION переменные длявеб-сессии.Так как не будет реальной необходимости тайм-аут сеанса, будут ли какие-либо флаги, которые я могу установить в php.ini, чтобы никогда не превышать тайм-аут?Или было бы выгоднее использовать куки для этого типа работы?

Спасибо.

Ответы [ 2 ]

1 голос
/ 23 января 2012

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

Вы можете изменить session.cookie-lifetime в ini-файле (возможно, даже с ini_set()), чтобы предотвратить истечение времени ожидания файлов cookie в конце сеанса.

Сохранение $_SESSION приведет к , а не , что приведет к бесконечному накоплению файлов сеанса. Если сеанс остается живым, один и тот же файл будет повторно использоваться снова и снова (поскольку он назван в честь идентификатора сеанса), а встроенный сборщик мусора в PHP все равно удалит мертвые сеансы.

Хотя в целом это плохая идея, чтобы сеансы длились вечно, так как это ваш местный паб, я сомневаюсь, что кто-нибудь попытается украсть их сеанс. (и даже если бы они сделали, все, что они получили бы, это то, что на воскресный обед, верно?):)

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

1 голос
/ 23 января 2012

Вам, вероятно, лучше использовать cookie для хранения токена входа для пользователя с удаленной датой истечения срока действия, поэтому они автоматически регистрируются. Сохранение $_SESSION на неопределенный срок приведет к тому, что файлы сеанса будут накапливаться на сервере, тратя ресурсы впустую.в файловой системе.Вместо этого cookie может содержать некоторый токен (не угадываемое значение), связанный с пользователем в вашей базе данных.Основная информация может быть извлечена из базы данных тогда, когда пользователь возвращается.

...