Debian/Ubuntu обрабатывает это с cronjob, определенным в/etc/cron.d/php5
# /etc/cron.d/php5: crontab fragment for php5
# This purges session files older than X, where X is defined in seconds
# as the largest value of session.gc_maxlifetime from all your php.ini
# files, or 24 minutes if not defined. See /usr/lib/php5/maxlifetime
# Look for and purge old sessions every 30 minutes
09,39 * * * * root [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -r -0 rm
, maxlifetime сценарий просто возвращает число минут, сессия должна быть поддержана путем проверки php.ini, это похоже на это
#!/bin/sh -e
max=1440
for ini in /etc/php5/*/php.ini; do
cur=$(sed -n -e 's/^[[:space:]]*session.gc_maxlifetime[[:space:]]*=[[:space:]]*\([0-9]\+\).*$/\1/p' $ini 2>/dev/null || true);
[ -z "$cur" ] && cur=0
[ "$cur" -gt "$max" ] && max=$cur
done
echo $(($max/60))
exit 0
Я действительно не думаю, что можно безопасно предполагать что-либо о конечном пользователе.
Кроме того, пользователю проще просто закрыть браузер, чем выходить из каждого веб-сайта, поэтому по умолчанию установлен флажок «Запомнить меня» значение false удобно для пользователя и в целом менее хлопотно для них.
Нет. В наш век недостаточной конфиденциальности любое потенциальное отверстие для нарушения должно быть закрыто. Сайты должны стать более безопасными, а не менее.
Нет, лучше ничего не предполагать, особенно что-то вроде запоминания пользователя.
Что, если он находится в доме друга или на общедоступном компьютере и забыл выйти из системы?
Нет. Никогда не предполагайте, что ваши пользователи будут делать то, что вы от них хотите, если вы явно не скажете им (т.е. не заставите их) сделать это.
Флажок «Запомнить меня» - отличный пример того, как невежественные пользователи могут быть - даже если флажок установлен, то факт, что пользователи остаются в системе на общедоступных компьютерах, является проблемой. Не поможет, если вы начнете предполагать ...
Теперь, когда большинство браузеров все равно могут запоминать пароли, нет особого смысла в установке cookie-файла «запомнить меня», так что вы можете избавиться от этой опции. Тогда пользователи больше не смогут жаловаться, если они очистят свои куки-файлы, а затем задаются вопросом, почему ваш сайт не знает их от Адама ...
Однако не предполагайте, что пользователь выйдет из системы. Они этого не делают, и при просмотре с вкладками ваш файл cookie сеанса может оставаться в течение очень долгого времени - может быть, несколько дней, если они будут продолжать использовать режим гибернации / сна и перезапускать браузер только при сбое. Поэтому вам необходимо установить разумный тайм-аут бездействия и потребовать от них повторного входа в систему по его истечении.
Нет. Не забывайте старую фразу:
Когда вы делаете предположение, вы делаете «задница» из «u» и «mption».
Если ваш веб-сайт не имеет отношения к безопасности (то есть: вы не банк, медицинская или страховая компания), я бы снял флажок. Сделайте «Запомнить меня» по умолчанию и установите флажок «Это общедоступный компьютер, не хранить мой пароль». Это было бы моим желанием как пользователя, поскольку я ненавижу флажки «Запомнить меня», еще потому, что они не работают большую часть времени.
Можно ли предположить, что пользователь хочет чтобы их запомнили при входе в систему?
Я бы сказал, что да, в 80% случаев (полное предположение с моей стороны) человек подключается к вашему веб-сайту не через общедоступный компьютер, и он предпочел бы не перепечатывать их информацию каждый раз они приходят на сайт.
И если они используют общедоступный компьютер, можно ли предположить, что они достаточно умны, чтобы выйти из системы раньше уходя?
Нет, предполагать это небезопасно. И «сообразительность» даже не самый подходящий термин - я бы сказал, это скорее вопрос запоминания или даже осознания.
Так что я говорю, идите безопасным путем. Установите флажок «Запомнить меня» и по умолчанию оставьте его снятым. Люди привыкли к такому сценарию. Это не так уж важно и гораздо реже доставит вам проблемы, чем проверка его по умолчанию или, что еще хуже, не предоставить его и сделать это молча.
Я думаю, что он должен быть там на неосновных сайтах, но никогда не проверяться по умолчанию и никогда автоматически не считается желательным. Если люди не хотят запоминать свои логины или повторно вводить их, пусть этим занимается менеджер паролей браузера или что-то еще, а не сайт. Обычно пользователи не выходят из системы - для многих учитывается только закрытие браузера.