2010-07-12 1 views
1

Мне интересно, знает ли кто, как Gmail, Hotmail, Facebook и т. Д. Обрабатывают следующий сценарий. (Примечание: Если предположить Cookie разделяется между вкладками)Каков правильный способ обработки нескольких учетных записей с одного и того же компьютера и браузера?

  1. открывает две страницы входа для приложения.
  2. Пользователь 1 регистрируется в домене.
  3. Пользователь 1 изменяет некоторые данные, не сохраняя его.
  4. Пользователь 2 регистрируется в домене на отдельной вкладке.
  5. Пользователь 1 переключается обратно на свою вкладку и сохраняет данные.

Я пытался повторять шаги FF для Gmail, он иногда дает мне «Это может произойти автоматически, если другой пользователь вошел в из того же браузера» и журналы предыдущего пользователя автоматически», но в остальное время просто показывает «Страница не перенаправляется должным образом», и мне придется очистить свой файл cookie.

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

Кто-нибудь может пролить свет на то, как каждый из них реализован, а также что может быть лучшей практикой для решения этой проблемы?

ответ

1

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

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

+0

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

Смежные вопросы