Сеансовые куки Firefox - PullRequest
       43

Сеансовые куки Firefox

102 голосов
/ 22 апреля 2009

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

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

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

Итак, почему Firefox называет их сессионными cookie-файлами, если они действуют неопределенно долго?

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

Ответы [ 7 ]

110 голосов
/ 05 июля 2009

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

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

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

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

5 голосов
/ 29 апреля 2009

Две идеи:

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

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

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

Кроме того, вы пробовали новый профиль?

1 голос
/ 21 июля 2015

Я не согласен с указанным выше meandmycode.

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

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

Логическим расширением этого является то, что ЕДИНСТВЕННЫЙ способ, которым сервер должен требовать, чтобы браузер не поддерживал Cookie при выходе, состоит в том, чтобы не устанавливать значение Expires (то есть cookie сессии). Если браузер не соблюдает эту семантику, то он не учитывает ответ сервера.

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

1 голос
/ 30 марта 2012

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

0 голосов
/ 12 января 2015

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

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

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

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

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

0 голосов
/ 31 марта 2013

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

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

OK. Это то, что я сделал. Я выбрал «Выход» из главного меню Firefox и с тех пор все прошло нормально, как и ожидалось (не знаю почему).

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