Ответ 1
2 хорошие статьи:
Постоянная переписка с рецептом печенья
Улучшенная передовая практика cookie для постоянных пользователей
Что лучше хранить в куки, чтобы сохранить постоянное состояние входа?
Я видел много веб-сайтов (и начинающих учебников!), которые просто хранят в файле cookie что-то вроде validUser = 1. Очевидно, я мог бы обмануть это, и веб-сайт подумает, что я действительный пользователь.
Если имя пользователя хранится в файле cookie, я мог бы маскироваться как любой пользователь, отправив файл cookie с его/ее именем пользователя в мой запрос.
Итак, если вы храните в cookie имя пользователя и, тогда я должен знать имя пользователя и пароль для входа. Эффективно пользователь регистрируется автоматически - это похоже на то, что пароль сохранен его браузера. Вместо того, чтобы каждый раз вводить учетные данные в ящики, браузер автоматически отправляет их с каждым запросом страницы.
Но разве это еще плохая идея? Хранение простого текстового пароля - не блестящая идея, но то, как он будет отправляться в POST-данных при входе в систему. И кроме того, он может быть сохранен хэшированным. Но я до сих пор не чувствую себя комфортно.
Возможно, файлы cookie не должны использоваться для хранения чего-либо, кроме идентификатора сеанса, а данные пользователя хранятся на самом сервере. Возможно, это более безопасное место, предполагая, что сервер не используется.
Глядя на какое-то программное обеспечение с открытым исходным кодом, такое как программное обеспечение для форумов, они используют более сложную систему, но я не мог точно понять, что именно она делает, чтобы скрыть код.
Какова стандартная "лучшая практика"?
2 хорошие статьи:
Постоянная переписка с рецептом печенья
Улучшенная передовая практика cookie для постоянных пользователей
Лучшей практикой было бы использовать SESSION вместо COOKIE для использования данных. COOKIES используются для хранения общей информации, а не конкретной информации о пользователе, о том, для чего используются СЕССИИ.
Лучшей практикой является хранение случайно сгенерированного идентификатора сеанса. Затем сеанс сохраняет идентификатор пользователя или все остальное, что вам нужно для хранения. В PHP метод session_start()
автоматически генерирует идентификатор сеанса и файл cookie с именем PHPSESSID, поэтому вам нужно только беспокоиться о сохранении данных в массиве $_SESSION, а не в файле cookie.
Единственное, что должно быть в cookie, это sessionid, сгенерированный PHP (и это делается автоматически, когда вы используете сеансы). Вы не должны хранить что-либо в файле cookie, за исключением, возможно, запоминающегося имени пользователя для флажка "запомнить меня".