Нельзя, поскольку в куках никакого пароля и нету.нельзя ли его потом в ручную подменить в куках броузера и зайти от имени другого пользователя, не зная его пароля?
бинго. поэтому нельзя SID совать в урл.Почитал несколько статей про сессии, но мне все же непонятен именно этот момент.
Но ведь получается тогда, что клиент может поменять этот id, и таким образом получить доступ к чужой сессии?
каким образом?то же самое можно сделать и без сессий!
и теперь, если не таскаем в урле, все остальные фокусы типо секретного слова в куке - бессмысленны, потому что перехватить SID можно сканя трафик, а вместе с ним попадут к слоумышленники и все остальные данные с кук и разная информация типа версии браузера, да и имея такой доступ к сети, занять ваш айпи у них тоже проблем не вызовет.Users may send a URL that contains an active session ID to their friends by email or users may save a URL that contains a session ID to their bookmarks and access your site with the same session ID always, for example.
каким образом?
Koc, уже ответили за меня. Добавь дату последнего входа в базу и все! Когда тебе надо, тогда и выкидываешь пользователя.Суть авторизации на куках довольно проста: ставишь пользователю по факту ввода корректных данных две куки - ID его в базе и md5() от связки следующих строк:
- его логин
- его пароль в базе (который был при регистрации тоже в md5 захэшен)
- секретное слово, например 'dcdc35687989sdcsd'
Вот. Отсылаешь пользователю эти две куки по факту его входа в систему. Когда пользователь вошел, выбираешь из таблицы пользователей данные пользователя с ID, пришедшим из куки. Если запись найдена, сверяешь хэш из кук с хэшем от md5(user_login_из_базы, user_pass_из_базы, секретное_слово)
Сессии - не лучший механизм для того, чтобы учиться делать аутентификацию.
Духовность™, теперь подумайте, что вы написали: вы каждый раз проверяете, действительно ли пользователь вошел на сайт?Духовность™ предложит вам немало способов усложнить себе жизнь.
Если человек намеренно отключил куки, я думаю он знает, что делает. Если нет - флаг ему в руки и веселого серфинга в интернете. Кстати, второе ваше предложение совсем не к месту.как бы даже в мане предупреждают об опасности, и настройки по умолчанию всеми силами останавливают перед глупостью с тасканием SID в урле. Или вы думаете, что умнее разработчиков php?
я не понимаю, к чему вы это написали? на этот вопрос я уже писал ответ - ssl.и теперь, если не таскаем в урле, все остальные фокусы типо секретного слова в куке - бессмысленны, потому что перехватить SID можно сканя трафик, а вместе с ним попадут к слоумышленники и все остальные данные с кук и разная информация типа версии браузера, да и имея такой доступ к сети, занять ваш айпи у них тоже проблем не вызовет.
а эта фраза меня даже в ступор ввела. Я разве просил совета? Если бы это было адресовано к Духовность™, я бы еще понял, т.к. он написал, что лучше авторизацию делать без сессий.Alien85 и ещё одна маленькая тонкость, куки передаются с каждым запросом на сервер, так что лучше чтобы там ничего лишнего не было.
так это те же сессии, вид сбокуДобавь дату последнего входа в базу и все! Когда тебе надо, тогда и выкидываешь пользователя.
да, а что Вам не нравится?вы каждый раз проверяете, действительно ли пользователь вошел на сайт?
Получается, перехватив ваши куки можно войти на сайт под чужим именем и пользователь даже этого не узнает
я не понимаю, к чему вы это написали? на этот вопрос ... ответ - ssl.
time()+60*60*24*365+ на последок: что вы будете делать, когда понадобится сделать автовход ("Запомнить меня")?
О чем вы говорите?
Нужно взять за принцип:
В сессиях храним то, что юзеру менять нельзя!
В куках - все остальное!