Файли cookie сеансу Firefox


105

Взагалі кажучи, коли їм надається файл cookie, який не має терміну придатності, сучасні браузери вважатимуть це cookie "сесійним файлом cookie", вони видалять файл cookie в кінці сеансу перегляду (як правило, коли закривається екземпляр браузера).

IE, Opera, Safari і Chrome підтримують цю поведінку.

Однак, здається, що Firefox (остання версія 3.0.9) не дотримується цього правила, оскільки, як я можу сказати, не закінчуються файли cookie, коли браузер закритий, або коли користувач виходить з системи або перезапустить ОС.

Отже, чому Firefox називає їх сесійними файлами cookie, коли вони тривають, мабуть, нескінченно довго?

Хтось знає, як Firefox обробляє термін дії файлів cookie?


1
Я не думаю, що на це насправді відповіли. Я також бачу це.
bhollis

Дякую BRH за ваше дослідження, я насправді побачив вашу відповідь і мав на увазі перевірити ваше дослідження, перш ніж помітити свою відповідь, а зовсім забув! вибачення
meandmycode

Відповіді:


116

Це, мабуть, дизайн. Перевірте цю помилку Bugzilla: https://bugzilla.mozilla.org/show_bug.cgi?id=443354

У Firefox є функція, коли ви закриваєте Firefox, і вона пропонує зберегти всі ваші вкладки, а потім відновите веб-переглядач і ці вкладки повернуться. Це називається відновленням сеансу. Я не усвідомлював, що він також відновить усі файли cookie сеансу для цих сторінок! Це ставиться до нього так, як ви ніколи не закривали браузер.

Це має сенс у тому сенсі, що якщо ваш веб-переглядач вийшов з ладу, ви повернетесь туди, де ви були, але це трохи неприємно для веб-розробників, які використовуються для очищення файлів cookie сеансу. У мене є кілька старих файлів cookie сесії з місяців тому, які були встановлені на сайтах, у яких я завжди відкритий на вкладках.

Щоб перевірити це, закрийте всі вкладки у своєму браузері, а потім закрийте веб-переглядач та перезавантажте його. Я думаю, в цьому випадку файли cookie сеансу для вашого веб-сайту повинні очищатися. Інакше вам доведеться вимкнути відновлення сеансу.


1
Я вважаю цю поведінку досить сумнівною, дякую за ваше дослідження. Якщо вибрано пункт «Зберегти та закрити» або «Відновити вкладки та вікна», після закриття браузера всі файли cookie сеансу залишаються недоторканими. Єдиний спосіб, щоб "користувач" позбувся їх - спочатку закрити вкладку (и), а потім закрити браузер.
відмітка

Ви коли-небудь знайшли вирішення? Я дійсно не хочу, щоб Firefox викопував старі сеанси, оскільки мені потрібен ідентифікатор сесії в моєму додатку, щоб він був унікальним.
ArjanP

Вибачте, я не знаю вирішення проблеми. З точки зору вашого додатка, його браузер ніколи не закривався.
Бхоліс

6
Я зазначив деякі наслідки цього (необдуманого) рішення IMO
Стів Клей

Мене покусала така поведінка і сьогодні. Я думав, що з моїм додатком щось не так. Потім я протестував Chrome та інші браузери, а потім з'ясував, що винуватцем є firefox.
Дінгл

5

Дві ідеї:

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

3

Це має спрацювати. Раніше я був одним із тестерів модулів файлів cookie, і я не думаю, що є причина дизайну, що це поводитиметься по-іншому (хоча, якщо ви збиваєтеся, файли cookie сеансу можуть бути розроблені для роботи під час перезавантаження ...)

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

Також ви спробували новий профіль?


Дуже дивно, я відносно щасливий, якщо це просто помилка з двома системами, на яких я її тестував .. Я переглянув файли cookie, і вони пережили що-небудь .. і вони абсолютно класифікуються як сесійні файли cookie від firefox .. Єдині варіанти, які я коли-небудь міняю у Firefox, - це вимкнути і ввімкнути JavaScript .. мої встановлені плагіни - це firebug та панель інструментів веб-розробників .. ну, добре, все одно.
meandmycode

Існують також різноманітні налаштування модулів cookie, але я не пам'ятаю, щоб жоден з них мав такий функціонал. FF3 перейшов з текстового файлу в базу даних файлів cookie, можливо, ваша база даних неправильно поводилася.
benc

2

Я не згоден з меандмікодом вище.

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

Якщо сервер бажає, щоб користувальницький агент зберігав файл cookie протягом декількох "сеансів" (наприклад, перезапускається агент користувача), сервер може вказати дату закінчення терміну дії в атрибуті Expires. Зауважте, що агент користувача може видалити файл cookie до дати закінчення терміну придатності, якщо сховище файлів cookie користувача перевищує його квоту або якщо користувач вручну видаляє файли cookie сервера.

Логічне розширення цього полягає в тому, що ТОЛЬКИ спосіб, яким сервер повинен вимагати, щоб браузер не підтримував Cookie при виході, це встановити значення Expires (тобто сесійне cookie). Якщо браузер не вшановує цей семантичний, то він не шанує відповідь сервера.

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


1

Це викликає занепокоєння у спільних користувальницьких середовищах. Якщо я встановила файл cookie автентифікації, термін дії якого закінчується в кінці сеансу. Це збережеться у Firefox після закриття браузера та запуску Firefox іншого користувача. Файли cookie встановлюються з терміном придатності з причини!


1
Ну, якщо бути справедливим щодо "Файли cookie встановлюються з терміном придатності з причини" - у цьому сценарії ви не встановлюєте дату закінчення терміну придатності, тож браузер повинен вирішити, скільки триває цей cookie.
meandmycode

0

Мені спалахнуло, що Mozilla залишила це так, як це вже кілька років.

Гаразд .. тому я кинув FF і вимкну ПК. Наступного дня FF запускає та відкриває останній набір сторінок (приємна зручна функція), Але він відновлює сеанси, і я входжу назад на сайти, які не мають функції "зберегти мої настройки". Я знаю, бо це сайти, які я створив. Що б я не робив із налаштуваннями php ini, сеанси відновлюються.

Вони абсолютно не повинні бути відновлені. Сторінки так, але сеансів із файлом cookie ini встановлено на "0" ні.

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

Сеанс НЕ повинен зберігатися. FF маніпулює налаштуваннями терміну дії файлів cookie.


-1

Ну це для мене бентежить. Моя система налаштована так, щоб користувачі могли натиснути EXIT, завдяки чому я знищую всі файли cookie сеансу. Але якщо користувач закриває веб-переглядач, не вибираючи Вихід, я хотів би, щоб сеансові файли cookie були очищені.

Я насправді тестував це в Google Chrome, IE 9, і працює чудово. Але Firefox неохоче знищує цей "сеанс" (як повідомляє Firebug) куки.

ГАРАЗД. Це я і зробив. Я вибрав Вихід із головного меню FireFox і з цього часу зробив це добре, як очікувалося (Не знаю, чому).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.