Куки-файлы против сеансов

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

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

Solutions Collecting From Web of "Куки-файлы против сеансов"

Концепция заключается в сохранении постоянных данных для загрузки страниц для посетителя. Cookies хранят его непосредственно на клиенте. Сеансы используют куки-файл как ключ для сортировки, чтобы связать данные, хранящиеся на стороне сервера.

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

Редактирование: я не думаю, что есть преимущество в использовании файлов cookie, кроме простоты. Посмотрите на это так … У пользователя есть какие-то причины знать их ID #? Обычно я бы сказал «нет», пользователь не нуждается в этой информации. Выдача информации должна быть ограничена необходимостью знать основы. Что делать, если пользователь изменяет свой файл cookie на другой идентификатор, как ваше приложение ответит? Это риск для безопасности.

До того, как сессии были в ярости, у меня в основном была моя реализация. Я сохранил уникальное значение cookie на клиенте и сохранил мои постоянные данные в базе данных вместе с этим значением cookie. Затем на страницах запросов я сопоставлял эти значения и имел свои постоянные данные, не позволяя клиенту контролировать, что это было.

Основные идеи, чтобы различать эти два.

сессия:

  1. IDU хранится на сервере (то есть на стороне сервера)
  2. Безопаснее (из-за 1)
  3. Истечение срока действия не может быть установлено, переменные сеанса будут истек, когда пользователи закроют браузер. (в настоящее время он хранится в течение 24 минут по умолчанию в php)

Печенье:

  1. IDU хранится в веб-браузере (т.е. на стороне клиента)
  2. Не очень безопасно, поскольку хакеры могут получать и получать вашу информацию (из-за 1)
  3. Истечение срока действия может быть установлено (см. Setcookies () для получения дополнительной информации)

Сессия предпочтительна, когда вам нужно хранить кратковременную информацию / значения, такие как переменные для вычисления, измерения, запроса и т. Д.

Куки-файлы предпочтительнее, когда вам нужно хранить долгосрочную информацию / значения, такие как учетная запись пользователя (так что, даже когда они завершат работу компьютера в течение 2 дней, их учетная запись все равно будет зарегистрирована). Я не могу придумать много примеров для куки, поскольку он не принят в большинстве ситуаций.

 SESSIONS ENDS WHEN USER CLOSE HIS BROWSER, COOKIES ENDS DEPENDING ON THE LIFE TIME YOU SET FOR IT. SO IT CAN LAST FOR YEARS 

Это основная разница. по вашему выбору,

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

Надеюсь, поможет 🙂

когда вы сохраняете #ID в качестве cookie для распознавания зарегистрированных пользователей, вы фактически показываете данные пользователям, которые не связаны с ними. Кроме того, если сторонняя сторона пытается установить случайные идентификаторы в виде файлов cookie в своем браузере, они смогут убедить сервер, что они являются пользователем, пока они на самом деле нет. Это недостаток безопасности.

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

вот идея: вы можете помочь в использовании файлов cookie: если вы используете случайные ключи вместо идентификаторов для распознавания зарегистрированных пользователей, во-первых, вы не просачиваете свои первичные данные произвольным пользователям, а во-вторых, если вы считаете случайным достаточно большой ключ, каждому будет сложно угадать ключ или создать случайный. например, вы можете сохранить ключ длины длиной 40, как это в браузере пользователя: «KUYTYRFU7987gJHFJ543JHBJHCF5645UYTUYJH54657jguthfn», и для каждого человека будет менее вероятно создать точный ключ и притвориться кем-то другим.

Собственно, сеанс и файлы cookie не всегда являются отдельными вещами. Часто, но не всегда, сеанс использует файлы cookie.

В этих других вопросах есть несколько хороших ответов на ваш вопрос. Поскольку ваш вопрос касается, в частности, сохранения IDU пользователя (или ID), я не думаю, что это довольно дубликат этих других вопросов, но их ответы должны помочь вам.

cookie против сеанса

Cache VS Session VS cookie?

В чем разница между сеансом и Cookie?

Сессии позволяют хранить отдельные фрагменты информации точно так же, как с помощью файлов cookie, но данные хранятся на сервере, а не на клиенте.

Сессия и Cookie не совпадают.

Сеанс используется для хранения информации с веб-страниц. Обычно веб-страницы не имеют воспоминаний для хранения этих данных. Но используя мы можем сохранить необходимую информацию.

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

Кредиты: Сессия и Cookie

Я лично использую как cookie, так и сеанс.

Cookies используются только при нажатии на кнопку «запомнить меня» . а также файлы cookie шифруются, а данные дешифруются только на сервере. Если кто-либо попытается отредактировать файлы cookie, наш дешифратор сможет его обнаружить и отказаться от запроса.

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

Благодаря,

Как говорили другие, сеансы умны и имеют больше преимуществ скрывать информацию от клиента.

Но Cookie по-прежнему имеет хотя бы одно преимущество , вы можете получить доступ к своим файлам cookie из Javascript (например, ngCookies ). С помощью сеанса PHP вы не можете получить доступ к нему нигде вне скрипта PHP.

Я выберу сеанс, прежде всего сеанс более безопасен, а затем файлы cookie, файлы cookie – это данные сайта клиента, а сеанс – данные сайта сервера. Файлы cookie используются для идентификации пользователя, поскольку это небольшие фрагменты кода, которые встроены в мой сервер с помощью пользовательского браузера. С другой стороны, сеанс помогает вам идентифицировать вас, потому что веб-сервер не знает, кто вы, потому что HTTP-адрес изменяет состояние 192.168.0.1 на 765487cf34ert8ded … ..или что-то еще с помощью методов GET и POST. Сеанс хранит данные пользователя в уникальном сеансе идентификации, который даже идентификатор пользователя не может совпадать друг с другом. Session хранит одну пользовательскую информацию на всех страницах одного приложения. Срок действия файлов cookie устанавливается с помощью setcookies (), в то время как срок действия сеанса не установлен, он истекает, когда пользователь отключает браузеры.