Должен ли веб-браузер удалить все куки `session '(expiry = 0) при выходе? - PullRequest
4 голосов
/ 15 апреля 2009

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

http://www.cookiecentral.com/faq/ говорит, что:

"... обычно сеанс - это отрезок времени, в течение которого браузер открыт для ..."

http://php.net/manual/en/function.setcookie.php говорит:

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

Однако некоторые эксперименты в Firefox (3.0.8) показывают, что:

  • куки-файлы, установленные как сеанс и secure, удаляются при выходе
  • файлы cookie, установленные только для сеанса, не удаляются при выходе

Opera (9.64) ведет себя так, как я и ожидал, удаляя сеансовые куки при выходе, независимо от того, установлена ​​ли она как безопасная или нет.

Я хотел иметь возможность полагаться на это в веб-приложении, над которым я работаю (наличие защищенного cookie-файла и незащищенного cookie-файла в качестве флага «залогинен» и истечение срока их действия либо в режиме реального времени или 0 для сеанса), но кажется, что даже если он в стандарте, браузеры не достаточно последовательны, чтобы полагаться на него: /

Является ли это ошибкой в ​​браузере, ожидаемым поведением и / или фактическим временем жизни сессионных файлов cookie, которое не определено в стандарте?

1 Ответ

7 голосов
/ 15 апреля 2009

Вы никогда не должны полагаться на функции на стороне клиента.

Функция, над которой вы работаете, обычно реализуется с сохранением идентификатора сеанса на стороне клиента и на стороне сервера информации о реальном пользователе (его идентификатор, независимо от того, вошел он в систему или нет, его личная информация и т. Д.).

Имейте в виду, что файлы cookie отправляются при каждом запросе, поэтому чем меньше вы сохраняете файл cookie, тем лучше.

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