Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Авторизация через соц. сети и безопасность


Автор: JEEN 5.1.2012, 08:41
При авторизации через соц. сети (ВК, твиттер, фейсбук), мы получаем уникальный ID, записываем его в сессию и вуаля, мы авторизованы. Но хочется еще и в куках отметиться, чтобы сайт нас помнил. Мне на ум сразу пришла идея, генерировать hash случайной строки каждый раз при авторизации юзера, записывать его в БД и в куки. Но тогда я могу у кого-нибудь стащить эту куку, добавить ее себе и я уже авторизован под другим человеком. Может можно как-нибудь защитить своих юзеров?

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

Автор: s0lman 5.1.2012, 12:18
Цитата(JEEN @  5.1.2012,  07:41 Найти цитируемый пост)
При обычной авторизации, в куки записывается логин и хэш пароля

Это плохой подход. Лучше, например, md5( логин + пароль + соль)

Усложнить "угон" можно - дополнительную куку поставить, проверять IP/ОС/броузер/и т.п. машины последней авторизации...

Также не забываем, что не бывает абсолютной безопасности - в крайнем случае любые пароли выбиваются ботинками...

Автор: cutwater 5.1.2012, 17:54
Цитата(s0lman @  5.1.2012,  11:18 Найти цитируемый пост)
Это плохой подход. Лучше, например, md5( логин + пароль + соль)


Мне вот вообще всегда было интересно, какой умник придумал отправлять клиенту в куках md5 от приватных данных в качестве идентификатора сессии (привязки сессии к пользователю)

Цитата(s0lman @  5.1.2012,  11:18 Найти цитируемый пост)
md5( логин + пароль + соль)


Чем лучше? Включив немного соображалку понимаем, что это абсолютно бесполезно и дает мнимую безопасность. Точней оно то дает небольшой прирост вычислительной сложности, если злоумышленник хочет восстановить пароль из этого значения. Но!

Ребят проснитесь, зачем это вообще нужно на клиенте? Чем вас не устроил случайный идентификатор, который абсолютно не зависит от логина, пароля и вообще пользователя.

Автор: JEEN 5.1.2012, 21:57
Цитата

Это плохой подход. Лучше, например, md5( логин + пароль + соль)

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

Цитата

Усложнить "угон" можно - дополнительную куку поставить, проверять IP/ОС/броузер/и т.п. машины последней авторизации...

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)