Как используются файлы cookie в веб-приложениях? - PullRequest
1 голос
/ 17 ноября 2010

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

Ответы [ 6 ]

5 голосов
/ 17 ноября 2010

Это позволяет серверу поддерживать специфичное для клиента состояние между запросами (сеансами) на стороне сервера. Он также позволяет JavaScript поддерживать специфичное для клиента состояние для запросов на стороне клиента без необходимости взаимодействия с сервером.

2 голосов
/ 14 ноября 2014

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

Session cookie

Сеансовый файл cookie, также известный как файл cookie в памяти или временный файл cookie, существует только во временной памяти, пока пользователь перемещается по веб-сайту. (В Java файл cookie сеанса может быть создан с помощью вызова getSession () объекта запроса). Веб-браузеры обычно удаляют сеансовые куки, когда пользователь закрывает браузер. Этот тип файлов cookie может использоваться для хранения данных, связанных с пользователем во время навигации, но в том же сеансе. Пользователь может переходить на веб-сайт назад и вперед без изменения настроек, но в случае закрытия браузера или тайм-аута сеанса все настройки будут потеряны.

Постоянный файл cookie

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

Безопасный файл cookie

Защищенный файл cookie имеет включенный атрибут безопасности и используется только через HTTPS, обеспечивая постоянное шифрование файла cookie при передаче от клиента к серверу. Это снижает вероятность того, что файл cookie подвергнется краже файла cookie при перехвате. В дополнение к этому, все файлы cookie подчиняются политике одного и того же источника браузера. Как вы спросили о механизме cookie Gmail , да, Gmail использует этот безопасный механизм cookie для хранения имени пользователя и случайного токена в качестве учетных данных для входа в систему. Да, он не сохраняет ваш исходный пароль в безопасном cookie, вместо этого, когда вы успешно вводите правильное имя пользователя и пароль и говорите «да», чтобы запомнить мой пароль, он генерирует случайное число (токен) для вашего имени пользователя в качестве файла cookie для входа в систему, выдаваемого в дополнение к стандартный файл cookie для управления сеансом и сохранение имени пользователя и случайного числа в качестве пароля в своей базе данных. Этот файл cookie не может использоваться другим устройством, так как он использует политику того же источника. Имя пользователя и токен хранятся в виде пары в таблице базы данных. Когда пользователь снова заходит на сайт, cookie-файл входа в систему автоматически отправляется на сервер в объекте запроса из браузера, после чего имя пользователя и токен проверяются сервером в базе данных. Если пара присутствует, пользователь считается аутентифицированным. Использованный токен удаляется из базы данных. Новый токен генерируется и сохраняется в базе данных с именем пользователя и выдается пользователю через новый файл cookie для входа в объект ответа. Если пары нет, cookie для входа в систему игнорируется. Пользователи, введенные с помощью этого механизма, не имеют доступа к определенной защищенной информации или функциям, таким как изменение пароля, просмотр Персональной информации (PII). Для выполнения этих операций пользователь должен сначала успешно отправить обычную форму для входа в систему с именем пользователя и паролем, которая автоматически появится, когда вы попытаетесь выполнить эти запрещенные операции. Поскольку этот подход позволяет пользователю иметь несколько запоминаемых входов в систему из разных браузеров или компьютеров.

HttpOnly cookie

Атрибут HttpOnly поддерживается большинством современных браузеров. В поддерживаемом браузере файл cookie сеанса HttpOnly будет использоваться только при передаче запросов HTTP (или HTTPS), что ограничивает доступ из других не HTTP-API, таких как JavaScript. Это ограничение смягчает, но не устраняет угрозу кражи файлов cookie сеанса через межсайтовый скриптинг (XSS). Эта функция применяется только к cookie-файлам управления сеансом, но не к другим cookie-файлам браузера.

Сторонний cookie

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

2 голосов
/ 17 ноября 2010

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

Вот несколько примеров информации, которая имеет смысл использовать cookie:

  • Выбор пользователем порядка в столбце
  • Цветовая тема пользователя веб-страницы
  • Пользовательские предпочтения категорий статей (например, разделов Новостей Google)

Вы можете сказать: «Почему бы не сохранить его в базе данных и не обработать его сервером?»
Кроме того, cookie-файлы также позволяют вам поддерживать предпочтения пользователя, не требуя от него создания учетной записи, которая будет отслеживать его настройки.
Вы также можете сказать: «Почему бы не оставить его в сеансе веб-приложения (например, в ASP.NET)?»
Сессия стирается, когда пользователь покидает сайт, поэтому настройки не будут действовать до тех пор, пока они не вернутся снова.

1 голос
/ 17 ноября 2010

Одна вещь, не упомянутая до сих пор, заключается в том, что файлы cookie также используются для хранения аутентификационной информации (а также состояния приложения).Это объясняет, почему вы автоматически выходите из системы Gmail при отключении файлов cookie.Если Google больше не может определить, каким пользователем вы являетесь, они не смогут предоставить вам доступ к вашей электронной почте.

1 голос
/ 17 ноября 2010

Как уже говорили другие, куки используются для поддержания состояния.Мета-причина, по которой они используются, заключается в том, что HTTP является протоколом без сохранения состояния, но деловая реальность требует сохранения состояния как-то .

0 голосов
/ 17 ноября 2010

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

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