допустим я хочу запомнить залогиненого юзера в куках. как правильно и безопасно сделать? как я понимаю просто записать в куки auth=1 или имя юзера опасно потому что можно вручную выставить потом куку
auth=1 нужно хранить на стороне сервера в сессии. ($_SESSION) в куках будет храниться только ключ сессии (SESSIONID). в общем поизучай механизм http-сессий и в частности php-сессий
Иначе говоря, значение куки должно быть уникальным, например 73msp8od1f7ge5ade1v57jv8d6 - это моя текущая сессия на PHP.RU, теперь я должен авторизоваться заново, т.к. эта сессия небезопасна... и любой желающий может воспользоваться этими данными, чтобы зайти под, уже авторизованным, логином Devzirom http://ru.wikipedia.org/wiki/HTTP_cooki ... 0.B8.D1.8F
дело в том что я про это знаю мне нужно практическое решение например записали в куку юзеру какойто хеш, а на серваке же его надо хранить? а базе? или хешировать логин и пароль юзера а потом сверять каждый раз при запросе страницы со значением из кук?
У php есть внутренний механизм сессий http://uk.php.net/manual/en/book.session.php Ранее я пробовал создать свой механизм сессий, но почему-то браузер отправлял куку не в каждом запросе, возможно я что-то упустил. Но больше, создавать этот механизм не пробовал. Идентификатор сессии - обычно случайная строка, хранят его обычно там же где и логин и пароль. Идентификатор сессии должен меняться с началом новой сессии(вопрос безопасности), поэтому не может быть хешем статического значения. Рекомендую ознакомиться http://www.php.ru/forum/viewtopic.php?t=15658
да при чем тут сессии? мне нужно хранение признака залогинености юзера на год а сессии уничтожаются через короткое время
Если я правильно понял, это автологин у Вас. Вам нужно присвоить GUID юзеру и хранить его и в куках и в БД. При входе на сайт сравнивать, если есть, или назначать новый GUID, если нет или не найден в БД. При выходе(log out) или истечении срока хранения или отсуствия в БД или автологин отключен - убивать. Примерно так...