Сеансы PHP: что, если я установлю срок действия сеанса на 10 дней?

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

Мой вопрос: есть ли какие-либо проблемы с безопасностью или производительностью при установке срока действия GC и срока службы файлов cookie на 10 дней?

ini_set('session.cookie_lifetime', 864000);
ini_set('session.gc_maxlifetime', 864000);

person Amer    schedule 17.10.2009    source источник


Ответы (2)


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

person cletus    schedule 17.10.2009
comment
Спасибо. Я думал так: это должно быть лучше, чем хранить его в БД и извлекать его каждый раз, когда истекает сеанс. Ваше здоровье! - person Amer; 17.10.2009

Вы увеличите риск перехвата сеанса.

Я бы периодически вызывал session_regenerate(). Это уменьшит риск для пользователей, которые действительно входят в систему, но ничего не сделает для тех, кто этого не делает.

person Daren Schwenke    schedule 17.10.2009
comment
Единственный другой способ, который пришел мне в голову, чтобы сохранить пользователя в системе, — это файл cookie «запомнить меня», но, если подумать, он также будет уязвим для перехвата сеанса. Приложение, которое я создаю, не имеет дело с какой-либо конфиденциальной информацией, поэтому перехват сеанса маловероятен. О, и я уже использую session_regenerate(), просто я хочу, чтобы пользователь оставался в системе, даже если он не предпринимает никаких действий или покидает сайт на целый день. Спасибо :) - person Amer; 17.10.2009