Авторизация куки + сессии + пгскул

Статус
В этой теме нельзя размещать новые ответы.
Совершенно верное замечание: хранить пароль в куках (даже хэшем) - это самоубийство, в этом нет никакой необходимости.
 
  • Нравится
Реакции: z3rg
Я делаю так..

Есть таблица с sesions_key, в ней поля hash_key и user_id,
при успешном логине или где поставили галочку запомнить меня, в табилицу пишется случайнос генерированый хеш и id пользователя, и этот хеш пишется ему в куки.

Далее если он заходит на сайт и у него нет сессии то проверяется куки, и если есть в куках хеш и он присутсвует в таблице, то пользователь автоматически авторизируется.

Разве у меня не так сделано??

я бы не советовал хранитьв куках пароль, пускай даже в захешированном виде.
при краже кук, подбор пароля вопрос времени.
хотя двойной хеш в несколько тысяч раз лучше, чем одинарный, но все же это является недостаточно безопасным.
лучше генерировать случайный хеш при авторизации, и заносить его в БД для данного пользователя, и в куки ему
только хеш должен быть действительно случайным.
то есть не просто от времени, умноженного на случайное число(такой хеш довольно быстро выявляется, а затем подбирать хеши для доступа по кукам только дело техники)
хеш должен братся от строки случайной длины, содержащей в себе что угодно, но главное, чтобы одна такая строка не была похожа на другую

Можно пример кода для реализации такого случайного хеша??
 
Можно пример кода для реализации такого случайного хеша??
md5(логин + User_Agent + IP + uniqid).
Потом сверяешь с текущими данными, если не совпадает - welcome на форму регистрации.
 
Где хранить этот хеш?
Как дополнительный в базе и при каждем логине его обновлять или как??
 
Смотри:
Юзер логинится на сайте => получаешь его User_Agent + IP + uniqid => делаешь md5 или sha этих данных => полученный хэш пишешь в базу (а также используемые данные) и в куку.

Если у юзера нет открытой сессии, проверяешь куку:
куки нет => отправляешь на форму
кука есть => вытягиваешь из базы данные и сравниваешь с текущими:
если совпадают => открываешь юзеру сессию
не совпадают => отправляешь на форму

Понятно?

Это один из вариантов, есть и другие.
У описаного подхода есть один нюанс - если у юзера между сессиями сменится IP, то авторизация по куке не пройдёт.
 
Мне кажеться это приведет к нагрузке на бд пусть и не значительной.
 
Мне кажеться это приведет к нагрузке на бд пусть и не значительной.
Нагрузка будет только в случае:
кука есть => вытягиваешь из базы данные и сравниваешь с текущими:
если совпадают => открываешь юзеру сессию
и это сложно назвать "нагрузкой", т.к. такое реализовано во многих больших движках и работают они нормально.
 
По логину мы сверяем user_name and pas если есть генерируем md5(логин + User_Agent + IP + uniqid) и пишем в pass2 пихаем в куку.
при повторном входе из куки читаем и сверяем с пасс2.
Я все правильно понял ??
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху