Как работает аутентификация на основе файлов cookie?

может ли кто-нибудь дать мне пошаговое описание того, как работает аутентификация на основе файлов cookie? Я никогда не делал ничего, связанного с аутентификацией или cookies. Что нужно сделать браузеру? Что нужно сделать серверу? В каком порядке? Как нам сохранить безопасность?

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

3 ответов


cookie-это в основном просто элемент в словаре. Каждый элемент имеет ключ и значение. Для аутентификации ключ может быть чем-то вроде "username", а значением будет имя пользователя. Каждый раз, когда вы делаете запрос на сайте, в браузере включить куки в запрос, и сервер будет проверять куки. Таким образом, аутентификация может быть выполнена автоматически.

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

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

браузер сохранит куки, установленные сервером. В HTTP-заголовок каждого запроса, который браузер делает на этот сервер, он добавит куки. Он будет добавлять cookies только для доменов, которые их устанавливают. Example.com можно установить файл cookie, а также добавить параметры в заголовок HTTP для браузеров, чтобы отправить файл cookie обратно в поддомены, например sub.example.com - ... Было бы недопустимо, чтобы браузер когда-либо отправлял cookies в другой домен.


Я понимаю, что это годы спустя, но я думал, что могу расширить ответ Конора и добавить немного больше к обсуждению.

может ли кто-нибудь дать мне пошаговое описание того, как работает аутентификация на основе файлов cookie? Я никогда не делал ничего, связанного с аутентификацией или cookies. Что нужно сделать браузеру? Что нужно сделать серверу? В каком порядке? Как нам сохранить безопасность?

Шаг 1: Клиент > Подписание вверх!--8-->

прежде всего, пользователь должен зарегистрироваться. Клиент отправляет HTTP-запрос на сервер, содержащий его имя пользователя и пароль.

Шаг 2: сервер > обработка зарегистрироваться

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

Шаг 3: Клиент > Логин

теперь регистрирует пользователя. Он/она предоставляет свое имя пользователя/пароль и снова, это отвечал, как HTTP-запрос на сервер.

Шаг 4: сервер > проверка логина

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

Шаг 5: сервер > создание маркера доступа

Если все подтвердится, мы создадим маркер доступа, который однозначно идентифицирует сеанс пользователя. Все еще на сервере мы делаем две вещи с токеном доступа:

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

отныне cookies будут прикрепляться к каждому запросу (и ответу), сделанному между клиентом и сервером.

Шаг 6: клиент > создание запросов страницы

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

Это должно вам начать работу. Обязательно очистите cookies при выходе из системы!


Аутентификация На Основе Файлов Cookie

аутентификация на основе Cookies работает нормально в этих 4 шагах -

  1. пользователь предоставляет имя пользователя и пароль в форме входа и нажимает кнопку Войти.
  2. после того, как запрос сделан, сервер проверяет пользователя на бэкэнде, запрашивая в базе данных. Если запрос действителен, он создаст сеанс с использованием сведений о пользователе, извлеченных из базы данных, и сохранит их для каждого сеанса a уникальный идентификатор, называемый идентификатором сеанса, создается, по умолчанию идентификатор сеанса будет передан клиенту через браузер.
  3. браузер будет отправлять этот идентификатор сеанса по каждому последующему запросу, идентификатор сеанса проверяется по базе данных, на основе этого идентификатора сеанса веб-сайт идентифицирует сеанс, принадлежащий клиенту, а затем предоставляет доступ к запросу.

  4. Как только пользователь выходит из приложения, сеанс уничтожается как на стороне клиента, так и серверный.