Akdmeh » 2009.08.25 12:36

Вот стал вопрос об авторизации.
На сколько безопасно хранить в куках у пользователя id и захешированый пароль?
Так же думаю, будет ли безопасна такая привязка:
$expl=explode('.', $_SERVER['REMOTE_ADDR']);
md5($passw.$expl[0].$expl['1'].strtok($_SERVER['HTTP_USER_AGENT'], ' '));
и этот хеш передать пользователю?
Или не стоит?
Как посоветуешь?:)

Gemorroj » 2009.08.25 12:46

Akdmeh написал:

На сколько безопасно хранить в куках у пользователя id и захешированый пароль?

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

Akdmeh » 2009.08.25 13:07

Да ну — связыватся с https и бейсик авторизацией нет ни опыта ни желания.
А в пунбб тоже похожая система(потому и спрашиваю):в punbb_cookie хранится засериализированный массив Array ( [0] => 118 [1] => хеш)
Как я понял, в первом — мой id, а во втором...
Что там хешируется, можно узнать?;)

Gemorroj » 2009.08.25 13:22

я неп омню уже что там с авторизацией)) последний раз код этого форума я открывал.... эээ... ну очень давно)
Добавлено спустя   1 минуту  10 секунд:
просто я не особо беспокоюсь на счет того, что у меня там в куках, пусть даже открытый пароль. если человек дошел до того, что засветил свои куки, то ему уже ничего не поможет. ИМХО.

Akdmeh » 2009.08.25 13:32

Я тоже подумал, что если у него вирусом украдут пароли, то форум — это не самое страшное, что может случится.
Вот вконтакте хранит захешированый пароль в куке, а в базе данных — вообще в открытом виде.
И ничего)
Ну привязку к ip не хочется делать, он действительно динамичный, а у пользователей оперы мини могут быть крупные проблемы...
Вот и думаю, что бы передавать, и сравниваю с другими системами)

Gemorroj » 2009.08.25 13:52

Akdmeh написал:

Вот вконтакте хранит захешированый пароль в куке, а в базе данных — вообще в открытом виде.

откуда такая информация?

Akdmeh » 2009.08.25 15:01

хеш в куке remixpass==твоему паролю в md5.
Раньше так точно было, может за этот месяц поменяли.

А в базе данных в открытом виде — когда даешь запрос пароля на восстановление, то возвращают старый, а не генерируют новый.

Gemorroj » 2009.08.25 15:53

хе)

Akdmeh » 2009.09.12 14:59

Ну всё же...
Всё никак не решу.

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

Если в куке будет нужный хеш - то авторизуем.
Если же нет - то не авторизуем.
При нажатии кнопки "выход" хеш будет вытираться, и соответственно все куки будут недействительные.

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

Минусы - можно кражу не заметить.
2) если я буду выходить с одного браузера, то будет выходить сразу со всех.
Ещё одно поле в базе данных.

Как думаешь - подойдёт, или может посоветуешь что-то лучшее?
//кстати, с наступающим!

Gemorroj » 2009.09.12 15:32

эээ с чем наступающим?)
Подойдет конечно. Большинство скриптов именно по такой схеме и работают. Этот вот форум, например.

Akdmeh » 2009.09.12 16:06

13 сентября - официально день программиста.
Ты ведь по профессии программист, то есть, тебя касается в первую очередь;)

Gemorroj » 2009.09.12 16:30

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