Файлы cookie и сеансы

Я начал использовать PHP пару месяцев назад. Для создания система входа на мой веб-сайт, я читал о файлах cookie и сеансах и их различиях (файлы cookie хранятся в браузере пользователя, а сеансы на сервере). В то время я предпочитал файлы cookie (а кто не любит файлы cookie ?!) и просто сказал: «Кого это волнует? У меня нет никакого дела с хранением его на моем сервере», поэтому я пошел дальше и использовал файлы cookie для своего дипломного проекта бакалавриата. Однако после того, как я выполнил большую часть своего приложения, я услышал что для конкретного случая хранения идентификатора пользователя сеансы более уместны. Поэтому я начал думать о том, что бы я сказал, если жюри спросит меня, почему вы использовали файлы cookie вместо сеансов? У меня есть только та причина (что мне не нужно хранить внутреннюю информацию о пользователе). Достаточно ли в качестве причины ? или это больше чем это?
Не могли бы вы рассказать мне о преимуществах / недостатках использования файлов cookie для хранения идентификатора пользователя?

Спасибо вам всем в StackOverflow!

174
задан Nadjib Mami 7 November 2017 в 09:38
поделиться

1 ответ

Короткий ответ

Правила, заказанные приоритетом:

  • Правило 1. Никогда не доверяйте вводу данных пользователем: cookie не безопасны. Используйте сессии для уязвимых данных.
  • Правило 2. Если персистентные данные должны остаться, когда пользователь закрывает браузер, используйте cookie.
  • Правило 3. Если персистентные данные не должны оставаться, когда пользователь закрывает браузер, используйте сессии.
  • Правило 4. Прочитайте подробный ответ!
<час>

Подробный ответ

Cookie

  • Cookie хранятся на стороне клиента (в браузере посетителя).
  • Cookie не безопасны: довольно легко считать и записать содержание cookie.
  • При использовании cookie, необходимо уведомить посетителей согласно европейским законам (GDPR).
  • Истечение может быть установлено, но пользователь или браузер могут изменить его.
  • Пользователи (или браузер) могут (быть установленным на), уменьшают использование cookie.

Сессии

  • Сессии хранятся на стороне сервера.
  • cookie использования Сессий (см. ниже).
  • Сессии более безопасны, чем cookie, но весьма уязвимы.
  • Истечение установлено в конфигурации сервера (php.ini, например).
  • время истечения срока По умолчанию составляет 24 минуты или когда браузер закрывается.
  • Истечение сбрасывается, когда пользователь обновляет или загружает новую страницу.
  • Пользователи (или браузер) могут (быть установленным на), уменьшают использование cookie, поэтому сессии.
  • По закону, также необходимо уведомить посетителей к cookie, но отсутствие прецедента еще не ясно.

соответствующий выбор

Сессии используют cookie! данные Сессии хранятся на стороне сервера, но UID хранится на стороне клиента в cookie. Это позволяет серверу соответствовать данному пользователю правильным данным сессии. UID защищен и трудно взламывать, но весьма уязвимый. Для чувствительных действий (изменяющий электронную почту или изменяющий пароль), не полагайтесь на сессии никакой cookie: попросите пароль пользователя подтверждать действие.

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

Помнят - меня , данные должны храниться в cookie, иначе данные будут потеряны, когда пользователь закроет браузер. Однако не сохраняйте пароль, или пользовательские персональные данные в 'помнят - меня' cookie. Храните пользовательские данные в базе данных и свяжите эти данные с зашифрованной парой идентификатора / ключ, сохраненный в cookie.

После рассмотрения предыдущих рекомендаций, следующий вопрос наконец, что помогает Вам выбирающий между cookie и сессиями:

персистентные данные должны остаться, когда пользователь закрывает браузер?

  • , Если ответ да , используйте cookie .
  • , Если ответ никакой , используйте сессии .

Источник: https://www.lucidar.me/en/web-dev/sessions-or-cookies /

2
ответ дан 23 November 2019 в 20:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: