RootPM
14.11.2016 - 11:08
Какие защиты вы используете для защиты авторизации? Допустим записываем в сессию id пользователя, а что дальше? Дальше можно подобрать идентификатор сессии или угнать cookie с открытым wi-fi и зайти под этим пользователем.
P.S. Получилось отсюда -
Авторизация
_____________
Все будет офигенно. Кому-то сразу, кому-то постепенно.
TranceIT
14.11.2016 - 11:27
Про куки можете сразу забыть. Это незащищенное хранилище на стороне пользователя. В куках ни при каких условиях нельзя хранить важную информацию.
Цитата (RootPM @ 14.11.2016 - 09:08) |
Дальше можно подобрать идентификатор сессии |
К тому моменту как вы подберете идентификатор сессия или умрет или информация в ней будет уже не актуальной.
_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать. Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!
Another Reality
14.11.2016 - 11:47
Цитата (RootPM @ 14.11.2016 - 11:08) |
Дальше можно подобрать идентификатор сессии |
Просто на примере общеизвестного OpenCart, вот такие идентификаторы о генерит: z49mQ3GQhfJY0sGi7DWjoz1KrNDDgXQ4
62^32 вариантов, удачи в подборе.
RootPM
14.11.2016 - 13:28
Цитата (TranceIT @ 14.11.2016 - 11:27) |
К тому моменту как вы подберете идентификатор сессия или умрет или информация в ней будет уже не актуальной. |
Такая вероятность существует, хоть и небольшая.
Цитата |
или угнать cookie с открытым wi-fi и зайти под этим пользователем. |
Не поверю, если тут никто из программистов не защищает сессии, у меня есть варианты, но сначала хотел услышать что используется на практике и доказало свою эффективность.
_____________
Все будет офигенно. Кому-то сразу, кому-то постепенно.
RootPM
14.11.2016 - 16:21
Подождём ещё немного, может кто нибудь ещё поделится своим опытом. Хотел вот ещё что спросить, если стоит галочка запомнить меня, в куки что лучше записать? Чтобы когда сессия закончится авторизовать пользователя.
_____________
Все будет офигенно. Кому-то сразу, кому-то постепенно.
TranceIT
14.11.2016 - 16:55
Цитата (RootPM @ 14.11.2016 - 14:21) |
Подождём ещё немного, может кто нибудь ещё поделится своим опытом. Хотел вот ещё что спросить, если стоит галочка запомнить меня, в куки что лучше записать? Чтобы когда сессия закончится авторизовать пользователя. |
Я бы хранил для пользователя в базе какой-нибудь ключ. Например md5(логин . соль . пасс) и по нему определял кто пришел.
_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать. Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!
Zzepish
14.11.2016 - 16:55
Кстати - хороший вопрос! Думаю - с https -тема не очень актуально (разве что не будет темы с man-in-the-middle). Но ситуация разруливается с помощью электронной подписи (вроде бы как)
RootPM
15.11.2016 - 06:00
Цитата (TranceIT @ 14.11.2016 - 16:55) |
Я бы хранил для пользователя в базе какой-нибудь ключ. Например md5(логин . соль . пасс) и по нему определял кто пришел. |
Писать в cookie пользователя пароль, даже его хеш - не лучшая идея, также как и использовать mt_rand().
Вариант: логин + соль в хеше норм., но как безопасно сгенерировать эту соль отдельно для каждого пользователя?
_____________
Все будет офигенно. Кому-то сразу, кому-то постепенно.
Если ты хочешь отдельную соль для каждого юсера, то наверно нужно ее хранить в бд для каждого юсера, ну и доставать ее потом для сравнения кто пришел, будешь ты ее в хеш кидать или как, там сам прикинешь, но придется в бд постоянно лазить для сравнения кто зашел на сайт
RootPM
15.11.2016 - 09:02
Astin
Цитата |
Хотел вот ещё что спросить, если стоит галочка запомнить меня, в куки что лучше записать? Чтобы когда сессия закончится авторизовать пользователя. |
т.е. записываем id пользователя и хеш в cookie, это нужно чтобы авторизовать пользователя, когда у него закончится сессия. Постоянно лазить в эту таблицу не нужно, а вопрос том как безопасно сгенерировать этот хеш (он будет в куках пользователя и на сервере в DB)
_____________
Все будет офигенно. Кому-то сразу, кому-то постепенно.
RootPM
15.11.2016 - 09:11
Цитата (Zzepish @ 14.11.2016 - 16:55) |
Кстати - хороший вопрос! Думаю - с https -тема не очень актуально (разве что не будет темы с man-in-the-middle). Но ситуация разруливается с помощью электронной подписи (вроде бы как) |
HTTPS - даёт небольшую защиту только от начинающих ..., этот протокол уже не раз взламывали. Как пользователя заставить использовать электронную подпись?) А ещё идеи или предложения есть?
Например такой вариант: Предложить пользователю поставить галочку - дополнительная защита, после чего создать в сессии md5 IP+user_agent
_____________
Все будет офигенно. Кому-то сразу, кому-то постепенно.
Я бы несоветовал делать обычный хеш типа md5( Id, mail, рандомное число и еще что то) так как такой вариант можно взломать по перебору, для этого даже есть пару прог, но они вообще расчитаны на проверку безопасности, но обычный мд5 поломать можно, я б навено хранил примерно такой хеш md5(sh-какой хочешь(md5(mail, id).md5(рандомное число плюс соль)), короче как то так, чем сложнее тем лучше. В куки и в бд и пишем этот хеш, если сессия кончалась, то делаем проверку, если есть хеш в куках, то лезим в бд и сверяем, если такой есть то берем id юсера и пишем в сессию, если юсер изначально не желал его запомнить, значит нет кук и показываем форму входа. И еще, если нет сессии и есть куки, то обнавляем хеш в бд и далее пишем id юсера в сессию, ну и работвем с его id
RootPM
15.11.2016 - 09:51
Цитата (Astin @ 15.11.2016 - 09:45) |
И еще, если нет сессии и есть куки, то обнавляем хеш в бд и далее пишем id юсера в сессию, ну и работвем с его id |
А если пользователь зашёл с ПК, потом с телефона. Зашёл домой, а его просят ввести пароль?)
_____________
Все будет офигенно. Кому-то сразу, кому-то постепенно.
Ну так и пусть авторизируется с телефлна. Браузеры же разные и устройства тоже. Честно не разу не замечал чтоб было так, с компа зашел а на андроеде к примеру уже авторизирован. Не, так скорее не выйдет и если выйдет то не нужно так. обязатеоьно нужно проверять актуальность данных.
Тебе вообще что надо? Безопасность или что другое
Zzepish
15.11.2016 - 10:42
RootPM
Именно взламывали ? Или man a in a the a middle?
Насколько я знаю: RSA взломать анрил
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.