Очередной вопрос от первого классы школы для девиантов. Собственно куки. С сессиями все ясно, разжевано в хорошей статье http://phpfaq.ru/sessions А что с сабжем? Они хранятся в бразуере. Следовательно уязвимы. Насколько сильно? Любой мамкин хакер их может отследить? Что правильно писать в них для юзера? Лог и хаш пасса? Авторизировать, затем setcookie и включать в верстку (для всяких личных кабинетов), проверяя isset на наличие? Какие то дополнительные методы защиты кук есть?
Идентификатор сессии писать надо. Или токен автовхода. Никаких логинов, хэшей паролей и уж тем более паролей в открытом виде. Сильно ли уязвимы? Ну обычно принято вообще не доверять данным, приходящим от пользователя. Не важно, куки это, или данные из формы. Многие поля запроса подделываются без лишних усилий. Как защищать? Нет единого стандарта. Как напишешь так и будет.
Я сделал так. При входе пользователя создаются два ключа и записываются в таблицу. Туда же записывается логин, время входа и IP пользователя. В куках хранится хэш ключей. При последующих посещениях сайта, проверяется наличие куки. Если куки есть, то проверяется есть ли такие ключи в таблице. Если есть, то в сессию записывается логин, ключи и IP. На каждой странице ключи из куки сравниваются с ключами, записанными в сессию, и IP пользователя с IP записанным в сессию. Если куки просрочены или ключи и/или IP не совпадают, то запись из таблицы удаляется, а пользователь отправляется на страницу авторизации.
аутентификации @Sergey_Tsarev зачем лишний раз логин-то записывать? Айдишника пользователя недостаточно? Ты сейчас описал автовход судя по тому что у тебя что-то заново записывается в сессию при последующих посещениях?
Ну у меня логин это и есть ID пользователя. А так-то ты конечно прав, если логин отличается от айди, то его записывать не нужно. Да, возможность автовхода предусмотрена, если пользователь разрешает использовать куки. В противном случае аутентификация действует до конца сессии.