![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Рыжий |
|
|||
![]() Помешанный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: 2 Всего: 20 |
Всем привет!
Написал систему регистрации/авторизации и задался вопросом: «А безопасна ли система» после долгих поисков «идеального» скрипта – решил, что «идеального» не существует. А каждый участник www видит авторизацию по-своему. Вот что получилось у меня, что-то мне подсказывает, что тут что-то не так ![]()
На остальных страницах сайта скрипт такой же, за исключением части с проверкой $_POST. Как я понимаю – на каждой странице нужно заново переустанавливать cookies, т.к. их время истечет и они станут неактивными? Сув. PS статью в факе читал, туда не посылайте! ![]() Добавлено @ 00:33 Забыл еще рассказать свои критерии: авторизация должна быть прочной. Но не слишком запудренной. Наверное максимально приближенной к Винградовской. (например открытие сайта в 2 окнах должно поддерживаться) То есть совсем уж пользователя не зажимать! Однако мне не хочется использовать таблицу БД, т.к. ее нужно будет чистить (cron) да и обращаться лишний раз к БД я не намерен. Это сообщение отредактировал(а) Рыжий - 6.2.2007, 00:34 |
|||
|
||||
Рыжий |
|
|||
![]() Помешанный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: 2 Всего: 20 |
После еще нескольких минут медитации над кодом, увидел, что $_COOKIE['pass'] не зашифрован, а должен
![]() Так что в куку помещаем md5($pass) Но если куку украдут, разве хацкеры с помощью brootforce не подберут пароль, пусть даже он в md5 ? |
|||
|
||||
Всемогущий |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 25.6.2006 Где: Челябинск Репутация: 5 Всего: 13 |
Пожалуйста скажите какой вообще толк хранить логин и пароль в куках ?
сессии для того и сделаны что бы хранить в них что не попадя и ещё как писал Mal Hack, хранить в сессии уникальный ключ этой сессии допустим
и так как сессии нельзя подделать хранить там цифру говорящую к какой группе пренадлежит человек 0-->чайник=гость 10-->админ=бог Далее чувствую будет адская критика моего поста ![]() |
|||
|
||||
-=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 32 Всего: 69 |
Нет, все ее видят одинаково также как и сам разработчик, почти. Просто есть определеные правила защиты, которые ты можешь узнать только тогда, когда будешь знать методы воздействия на систему в качестве злоумышленника. Его там вообще не должно быть. -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
PARROT |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2339 Регистрация: 5.1.2005 Где: Спб-ЦарьГрад Репутация: 23 Всего: 50 |
http://forum.vingrad.ru/topic-20119.html -------------------- Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим! |
|||
|
||||
Рыжий |
|
|||
![]() Помешанный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: 2 Всего: 20 |
Если я не ошибаюсь Винград хранит хеш пароля и логин в куках.
Что же тогда хранить в куках? Ведь узнавать пользователя - как ни крути, а нужно! Сув. Это сообщение отредактировал(а) Рыжий - 6.2.2007, 11:34 |
|||
|
||||
mishaSL |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1046 Регистрация: 10.1.2007 Где: Санкт-Петербург Репутация: 19 Всего: 54 |
Идеального скрипта не существует, но есть хорошие и достаточно безопасные. Возьми лубой скрипт авторизации из учебника PHP или скрипты авторизации на форумах посмотри. И посмотри основные принципы. Поверь негде не хранят связку логин и пароль в cookie. Добавлено @ 11:37 Это не пароль, это хэш в котором много чего может храниться смотря к чему привязывается программист (к примеру IP, браузер, кодировки и т.д.) -------------------- Лучший способ научиться программированию - это посмотреть как это делают другие... |
|||
|
||||
Рыжий |
|
|||
![]() Помешанный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: 2 Всего: 20 |
Помещать в cookie ip адрес - значит пользователи с динамичным ip не смогут использовать куку.
Помещать в cookie имя браузера - мне это просто не нужно, пусть люди заходят и с IE и с FF, хоть одновременно! Это сообщение отредактировал(а) Рыжий - 6.2.2007, 18:54 |
|||
|
||||
mishaSL |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1046 Регистрация: 10.1.2007 Где: Санкт-Петербург Репутация: 19 Всего: 54 |
В любом случае они одновременно не зайдут после одного логина, логиниться необходимо отдельно в каждом браузере, т.к. они (браузеры) куки хранят каждый отдельно. Смысл был не в этом, смысл в том что не надо хранить пароль в куках. Лучше хранить ID пользователя и уникальный ключ(но не пароль) пользователя и по этим данным проверять пользователя. -------------------- Лучший способ научиться программированию - это посмотреть как это делают другие... |
|||
|
||||
Рыжий |
|
|||
![]() Помешанный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: 2 Всего: 20 |
Но ведь любую открытую информацию можно подделать. Например если в куках держать логин+email+icq+еще много чего, а другие юзеры видят эту инфу - подделать куку очень просто.
Что же тогда хранить в куках, чтобы узнавать пользователя? |
|||
|
||||
N1k0laj_BY |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 6.2.2007 Репутация: нет Всего: нет |
Храни в куках уникальный индификатор пользователя не id, а случайно сгенерированую строку
|
|||
|
||||
Рыжий |
|
|||
![]() Помешанный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: 2 Всего: 20 |
||||
|
||||
N1k0laj_BY |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 6.2.2007 Репутация: нет Всего: нет |
Один раз за сессию обратиться к БД с данным запросом я думаю можно и производительность от этого неупадет. Тем более при авторизации вы к БД обращаетесь за получением данных пользователя. Что мешает сделать следующее $query='select * from '.$CONFIG["db_prefix"].'_user where login = "'.$login.'" and u_id="'.$u_id.'" limit 1'; u_id генери в зависимости от логина юзера его mail и т.д чтоб одинаковых небыло Это сообщение отредактировал(а) N1k0laj_BY - 6.2.2007, 23:12 |
|||
|
||||
Рыжий |
|
|||
![]() Помешанный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: 2 Всего: 20 |
Решил сделать так:
Будет массив Кук: $_COKIE['my_info'][0] = ID пользователя $_COOKIE['my_info'][1] = md5($login.' '.$pass); Выскажите пожалуйста свое мнение. Алгоритм будет таким: найти юзера с ID == данному, и сравнить хеши, если все ОК - значит ставим сессию, в которую помещаем ID пользователя. Сув. |
|||
|
||||
-=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 32 Всего: 69 |
Рыжий, ![]()
Да, так и делай. -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |