PHP: Запомнить меня и безопасность?

За время, которое я потратил на перерывы в изучении того, как PHP поддерживает Unicode, я вникал в то, что мои куки «Remember Me» были более безопасными. Однако есть несколько вещей, которые я не понимаю, и некоторые из моих собственных размышлений мне бы хотелось получить некоторые предложения и мнения.

1) Есть ли способ принять функцию «Запомнить меня», которая не включает файлы cookie? Любопытно, что есть очевидные недостатки безопасности при хранении файлов cookie аутентификации. Не то, чтобы во всем не было никаких рисков безопасности.

2) Поскольку я не работаю с банком или «очень чувствительной» информацией, необходимо ли требовать от пользователей вводить свои пароли для более «высокопрофильных» областей? Похоже, что вспомнить логин будет пустой тратой, если мы просто попросим их по существу войти в систему через две минуты.

3) Каков абсолютный лучший способ хранения файла cookie для проверки подлинности (кроме «совсем нет»)? В настоящее время я закодировал эту область, чтобы установить один токен в файле cookie (хэширование с использованием time (), их пользовательский агент, remote_addr и соль – sha256). Когда пользователь возвращается, он проверяет таблицу «сеансов» для токена, затем сопоставляет IP-IP для входа в систему. Если токен есть, но IP-адрес не соответствует ему, он автоматически отключает cookie и просит их войти в систему как если у них их нет.

Еще раз спасибо.

  1. По существу, нет. Он требует своего рода хранилища на стороне клиента; у вас нет способа узнать, кто из клиентов без cookie (или аналогичный, например, на клиентской стороне HTML 5).

  2. Это компромисс, который вы должны решить. Минимальный, старый пароль или другая форма подтверждения (электронная почта?) Должны быть необходимы, чтобы изменить его на новый.

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