Основы системы запомнить меня - PullRequest
4 голосов
/ 26 июля 2010

Я использую систему входа в систему PHP / MySQL. Я хотел бы добавить меня к нему. Каковы основные механики запомнить меня? Включает ли это добавление нового столбца в таблицу в MySQL, где хранится вся пользовательская информация и т. Д.?

Заранее спасибо,

John

Ответы [ 3 ]

3 голосов
/ 26 июля 2010

Есть несколько разных способов для этого.Метод secure будет состоять в том, чтобы добавить поле в пользовательскую таблицу mysql и иметь хэш «Remember_me», который является просто сгенерированным случайным хешем.

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

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

РЕДАКТИРОВАТЬ: см. Комментарии ниже для получения дополнительной информации о сессиях / безопасности.

2 голосов
/ 26 июля 2010

Включает ли это добавление нового столбца в таблицу в MySQL, где хранится вся пользовательская информация и т. Д.?

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

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

Если вы решили использовать безопасный файл cookie, но не хотитеЗашифровав весь трафик, вы можете использовать два куки:

  • Небезопасный куки, который сигнализирует только серверу, что у вас есть безопасный куки с учетными данными.
  • Безопасный куки с самими учетными данными.

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

0 голосов
/ 26 июля 2010

Когда кто-то входит в систему с установленным параметром «запомнить меня», генерирует идентификатор и сохраняет его в файле cookie.

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

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