[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Защита авторизации
Страницы: 1, 2
RootPM
Какие защиты вы используете для защиты авторизации? Допустим записываем в сессию id пользователя, а что дальше? Дальше можно подобрать идентификатор сессии или угнать cookie с открытым wi-fi и зайти под этим пользователем.

P.S. Получилось отсюда - Авторизация

_____________
Все будет офигенно. Кому-то сразу, кому-то постепенно.
TranceIT
Про куки можете сразу забыть. Это незащищенное хранилище на стороне пользователя. В куках ни при каких условиях нельзя хранить важную информацию.

Цитата (RootPM @ 14.11.2016 - 09:08)
Дальше можно подобрать идентификатор сессии

К тому моменту как вы подберете идентификатор сессия или умрет или информация в ней будет уже не актуальной.

_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать.

Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!

user posted image
Another Reality
Цитата (RootPM @ 14.11.2016 - 11:08)
Дальше можно подобрать идентификатор сессии

Просто на примере общеизвестного OpenCart, вот такие идентификаторы о генерит: z49mQ3GQhfJY0sGi7DWjoz1KrNDDgXQ4

62^32 вариантов, удачи в подборе.
RootPM
Цитата (TranceIT @ 14.11.2016 - 11:27)
К тому моменту как вы подберете идентификатор сессия или умрет или информация в ней будет уже не актуальной.

Такая вероятность существует, хоть и небольшая.

Цитата
или угнать cookie с открытым wi-fi и зайти под этим пользователем.

Не поверю, если тут никто из программистов не защищает сессии, у меня есть варианты, но сначала хотел услышать что используется на практике и доказало свою эффективность.

_____________
Все будет офигенно. Кому-то сразу, кому-то постепенно.
RootPM
Подождём ещё немного, может кто нибудь ещё поделится своим опытом. Хотел вот ещё что спросить, если стоит галочка запомнить меня, в куки что лучше записать? Чтобы когда сессия закончится авторизовать пользователя.



_____________
Все будет офигенно. Кому-то сразу, кому-то постепенно.
TranceIT
Цитата (RootPM @ 14.11.2016 - 14:21)
Подождём ещё немного, может кто нибудь ещё поделится своим опытом. Хотел вот ещё что спросить, если стоит галочка запомнить меня, в куки что лучше записать? Чтобы когда сессия закончится авторизовать пользователя.


Я бы хранил для пользователя в базе какой-нибудь ключ. Например md5(логин . соль . пасс) и по нему определял кто пришел.

_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать.

Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!

user posted image
Zzepish
Кстати - хороший вопрос! Думаю - с https -тема не очень актуально (разве что не будет темы с man-in-the-middle). Но ситуация разруливается с помощью электронной подписи (вроде бы как)
RootPM
Цитата (TranceIT @ 14.11.2016 - 16:55)
Я бы хранил для пользователя в базе какой-нибудь ключ. Например md5(логин . соль . пасс) и по нему определял кто пришел.

Писать в cookie пользователя пароль, даже его хеш - не лучшая идея, также как и использовать mt_rand().

Вариант: логин + соль в хеше норм., но как безопасно сгенерировать эту соль отдельно для каждого пользователя?

_____________
Все будет офигенно. Кому-то сразу, кому-то постепенно.
Astin
Если ты хочешь отдельную соль для каждого юсера, то наверно нужно ее хранить в бд для каждого юсера, ну и доставать ее потом для сравнения кто пришел, будешь ты ее в хеш кидать или как, там сам прикинешь, но придется в бд постоянно лазить для сравнения кто зашел на сайт
RootPM
Astin

Цитата
Хотел вот ещё что спросить, если стоит галочка запомнить меня, в куки что лучше записать? Чтобы когда сессия закончится авторизовать пользователя.


т.е. записываем id пользователя и хеш в cookie, это нужно чтобы авторизовать пользователя, когда у него закончится сессия. Постоянно лазить в эту таблицу не нужно, а вопрос том как безопасно сгенерировать этот хеш (он будет в куках пользователя и на сервере в DB)

_____________
Все будет офигенно. Кому-то сразу, кому-то постепенно.
RootPM
Цитата (Zzepish @ 14.11.2016 - 16:55)
Кстати - хороший вопрос! Думаю - с https -тема не очень актуально (разве что не будет темы с man-in-the-middle). Но ситуация разруливается с помощью электронной подписи (вроде бы как)

HTTPS - даёт небольшую защиту только от начинающих ..., этот протокол уже не раз взламывали. Как пользователя заставить использовать электронную подпись?) А ещё идеи или предложения есть?

Например такой вариант: Предложить пользователю поставить галочку - дополнительная защита, после чего создать в сессии md5 IP+user_agent

_____________
Все будет офигенно. Кому-то сразу, кому-то постепенно.
Astin
Я бы несоветовал делать обычный хеш типа md5( Id, mail, рандомное число и еще что то) так как такой вариант можно взломать по перебору, для этого даже есть пару прог, но они вообще расчитаны на проверку безопасности, но обычный мд5 поломать можно, я б навено хранил примерно такой хеш md5(sh-какой хочешь(md5(mail, id).md5(рандомное число плюс соль)), короче как то так, чем сложнее тем лучше. В куки и в бд и пишем этот хеш, если сессия кончалась, то делаем проверку, если есть хеш в куках, то лезим в бд и сверяем, если такой есть то берем id юсера и пишем в сессию, если юсер изначально не желал его запомнить, значит нет кук и показываем форму входа. И еще, если нет сессии и есть куки, то обнавляем хеш в бд и далее пишем id юсера в сессию, ну и работвем с его id
RootPM
Цитата (Astin @ 15.11.2016 - 09:45)
И еще, если нет сессии и есть куки, то обнавляем хеш в бд и далее пишем id юсера в сессию, ну и работвем с его id

А если пользователь зашёл с ПК, потом с телефона. Зашёл домой, а его просят ввести пароль?)

_____________
Все будет офигенно. Кому-то сразу, кому-то постепенно.
Astin
Ну так и пусть авторизируется с телефлна. Браузеры же разные и устройства тоже. Честно не разу не замечал чтоб было так, с компа зашел а на андроеде к примеру уже авторизирован. Не, так скорее не выйдет и если выйдет то не нужно так. обязатеоьно нужно проверять актуальность данных.
Тебе вообще что надо? Безопасность или что другое
Zzepish
RootPM
Именно взламывали ? Или man a in a the a middle?
Насколько я знаю: RSA взломать анрил
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.