Файловые сеансы Firefox

Вообще говоря, при предоставлении файла cookie, который не имеет срока действия, современные браузеры считают этот файл cookie "сессионным cookie", они удалят cookie в конце сеанса просмотра (обычно, когда экземпляр браузера закрывается).

IE, Opera, Safari и Chrome поддерживают это поведение.

Однако firefox (3.0.9 последний правильный выпуск), похоже, не соответствует этому правилу, из того, что я могу сказать, не истекает время куки, когда браузер закрыт, или когда пользователь выходит из системы или перезагружает ОС.

Итак, почему firefox ссылается на них как на файлы cookie сеанса, когда они последние неопределенно долго?

Кто-нибудь знает, как Firefox обрабатывает истечение сеанса cookie?

Ответ 1

Это, по-видимому, по дизайну. Проверьте эту ошибку Bugzilla: https://bugzilla.mozilla.org/show_bug.cgi?id=443354

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

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

Чтобы проверить это, закройте все вкладки в своем браузере, затем закройте браузер и перезапустите его. Я думаю, что сеансовые файлы cookie для вашего сайта должны очищаться в этом случае. В противном случае вам придется отключить восстановление сеанса.

Ответ 2

Две идеи:

  • У вас возникла проблема с вашим менеджером сеансов (тот, который включен в FF3 или один, включенный в расширение, например tabmixplus).
  • Используйте Firebug + FireCookie (https://addons.mozilla.org/en-US/firefox/addon/6683) для отладки!

Ответ 3

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

Вы просматриваете файлы cookie в меню "Настройки" > вкладка "Конфиденциальность" > "Показать файлы cookie..."?

Также вы пробовали новый профиль?

Ответ 4

Это немного опасно в среде общего пользователя. Если я установил файл cookie для проверки подлинности, срок действия которого истекает в конце сеанса. Это будет сохраняться в Firefox после закрытия браузера, а другой пользователь запустит Firefox. Cookies устанавливаются с датой истечения срока по какой-либо причине!

Ответ 5

Я смущен тем, что Mozilla оставила это, как и в течение нескольких лет.

ОК.. поэтому я ушел из FF и выключил ПК. На следующий день FF запускает и открывает последний набор страниц (хорошая удобная функция), но он восстанавливает сеансы, и я снова зашел на сайты, у которых нет функции "сохранить мои настройки". Я знаю, потому что это сайты, которые я построил. Что бы я ни делал с настройками php ini, сеансы восстанавливаются.

Они абсолютно не должны восстанавливаться. Страницы да, но сеансы с файлом cookie ini установлены на "0".

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

Сессия не должна сохраняться. FF управляет настройками истечения файлов cookie.

Ответ 6

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

Я действительно протестировал его в Google Chrome, IE 9, и отлично работает. Но Firefox не хочет убивать этот "сеанс" (как сообщается Firebug) куки.

OK. Это то, что я сделал. Я выбрал Exit из главного меню FireFox и с этого момента сделал все как можно лучше (не знаю почему).

Ответ 7

Я не согласен с meandmycode выше.

Спецификация HTTP https://www.ietf.org/rfc/rfc6265.txt рассказывает о том, что клиент должен делать с заголовками Set-Cookie с Expires:

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

Логическое расширение этого заключается в том, что ТОЛЬКО способ, которым сервер должен требовать, чтобы браузер не поддерживал Cookie при выходе, заключается в том, чтобы установить значение Expires (т.е. cookie сеанса). Если браузер не соблюдает эту семантику, то не соблюдает ответ сервера.

По сути, пользовательский агент решает игнорировать запрос сервера и действует так, как если бы было установлено значение Expires.