[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Алгоритм авторизации
ApuktaChehov
Здравствуйте уважаемые товарищи!

Имеется такая вот задача:
Нужно написать скрипт авторизации с защитой от перебор паролей и ограничением количества запросов от пользователей.
А так же с хорошо продуманной авторизацией.
Код я еще не написал, хочу выяснить, с Вашей помощью, как лучше это сделать.

Вот мысли которые у меня имеются:
1)Принцип авторизации:
Юзер ввел логин и пароль. Фильтруем эти данные, хешируем пароль. После чего делаем запрос SQL, если вернулся положительный результат, значить пользователь такой имеется. Генерируем случайную строку, и записываем ее в базу к данным об этом пользователе. Потом помещаем эту строку в сессию. Таким образом мы можем проверить подлинность пользователя сравнив эту строку с той, что записана у нас в базе, потому, что каждый раз, у каждого пользователя эта строку будет уникальной. При каждом следующем входе, строка будет снова генерироваться. Авторизация будет одноразовой.

2) Защита от перебора паролей.
Каждый раз при неправильно введенных данных, в базу данных записывается число, которое равно числу неверно введенной информации(число попыток авторизации). По истечению определенного количества этих попыток в .htacces мы блокируем IP адрес с которого пытались авторизоваться и можно еще заблокировать пользователя под которым пытались войти в систему.

3)Ограничение количества запросов от пользователей:
Можно организовать на подобии второго пункта.

Вот и все. Жду ваших комментариев.

Спасибо!



Спустя 42 минуты, 37 секунд (8.08.2009 - 21:46) Sylex написал(а):
ой... все гораздо проще...

Цитата (ApuktaChehov @ 9.08.2009 - 00:03)
Генерируем случайную строку


зачем эта строка вообще? Если сессия есть - юзер авторизован, если нет - нет. В любом случае - сессия сгорит, и все сгорит. И пользователь не может ничего писать в сессию, т.е. все надежно. Зачем что-то генерировать? Это вы путаете поди с куками. Этот механизм уже реализован в сессиях. И тем более зачем ее менять постоянно... Прочитайте про сессии и как оно делается.

Спустя 12 минут, 27 секунд (8.08.2009 - 21:58) Sylex написал(а):
признаюсь, что в самом первом сайте своем делал не на сессиях авторизацию - а именно подобным образом на куках ph34r.gif

но допер сам до этого как-то smile.gif

Спустя 2 часа, 1 минута, 53 секунды (9.08.2009 - 00:00) ApuktaChehov написал(а):
Цитата (Sylex @ 8.08.2009 - 18:58)
Этот механизм уже реализован в сессиях. И тем более зачем ее менять постоянно... Прочитайте про сессии и как оно делается.


Не понял немного, кого менять?

Я вроде бы сам запутался. Прошу прощения. Эта строка, нужна как раз для многоразовой авторизации. Что бы не хранить на компе пользователя важную информацию.

А тогда каким образом можно определить что пользователь авторизован? По существованию сесии?

Спустя 1 час, 15 минут, 35 секунд (9.08.2009 - 01:16) kirik написал(а):
Цитата (ApuktaChehov @ 8.08.2009 - 16:00)
А тогда каким образом можно определить что пользователь авторизован? По существованию сесии?

Не.. По наличию в сессии информации о том, что пользователь авторизован (флаг logged_in например).

Спустя 8 часов, 28 минут, 56 секунд (9.08.2009 - 09:44) Sylex написал(а):

Спустя 9 часов, 32 минуты, 13 секунд (9.08.2009 - 19:17) ApuktaChehov написал(а):
Как сессия работают я знаю. Мне больше интересует их практическое применение.

Насколько я понял делается так:

Если логин и пароль пользователя верны, тогда стартуем сессию и пишем в нее что то типо $_SESSION['register']=true;

Я правильно все понял?

Спустя 9 минут, 38 секунд (9.08.2009 - 19:26) kirik написал(а):
Цитата (ApuktaChehov @ 9.08.2009 - 11:17)
Если логин и пароль пользователя верны, тогда стартуем сессию и пишем в нее что то типо $_SESSION['register']=true;

Я правильно все понял?

Угу

Спустя 7 минут, 21 секунда (9.08.2009 - 19:34) glock18 написал(а):
Не важно что писать. Важно, чтобы было что потом сверять smile.gif

Спустя 49 минут, 3 секунды (9.08.2009 - 20:23) ApuktaChehov написал(а):
Ок. Я все понял. Ждите скоро кода wink.gif

Спустя 4 минуты, 22 секунды (9.08.2009 - 20:27) Sylex написал(а):
ApuktaChehov
нафик оно нам надо, ждать твой код biggrin.gif

Спустя 16 часов, 59 минут, 40 секунд (10.08.2009 - 13:27) ApuktaChehov написал(а):
Цитата (Sylex @ 9.08.2009 - 17:27)
ApuktaChehov
нафик оно нам надо, ждать твой код biggrin.gif

Ну.. можете не ждать... smile.gif
А код я всеравно выложу. tongue.gif

Спустя 6 дней, 23 часа, 13 минут, 3 секунды (17.08.2009 - 12:40) ApuktaChehov написал(а):
Вопрос возник:

Каким образом лучше определить насколько часто от определенного пользователя исходят запросы к скрипту?

Спустя 3 дня, 19 часов, 40 минут, 23 секунды (21.08.2009 - 08:20) ApuktaChehov написал(а):
Ну... я наконец таки, добрался до этого благова дела и сразу возник вопрос.

Какими средствами определить сколько запросов от одного IP адреса поступает на сервер, за определенный интервал времени?

Спустя 10 минут, 40 секунд (21.08.2009 - 08:31) Crэker написал(а):
ip адрес у пользователя может меняться. Можете сохранять у него в сессии количество обращений. При каждом следущем обращении будете увеличивать счетчик на 1

Спустя 10 минут, 8 секунд (21.08.2009 - 08:41) ApuktaChehov написал(а):
Надежно ли это? Сессиями? Каким образом это можно обойти?
Я тоже думал про сессии, но вот хочу выяснить, может есть более надежные способы.

Спустя 29 минут, 16 секунд (21.08.2009 - 09:10) Crэker написал(а):
Как мне известно, сессии подменять нельзя.
Вы зря заморачиваетесь. У вас что, сайт минобороны России?
Капчи - зло, забудьте уже наконец про них. Используйте другие способы, их немало.
А если уж так делаете, зачем блокировка? Хорошей капчи будет достаточно.

Спустя 1 час, 22 минуты, 8 секунд (21.08.2009 - 10:32) ApuktaChehov написал(а):
Мне нужна бокировка после определенного колличества попыток авторизации. Без использования баз данных и файлов.
Вот я и думаю...

Спустя 7 минут, 10 секунд (21.08.2009 - 10:40) twin написал(а):
Цитата
Как мне известно, сессии подменять нельзя.

Почти нельзя. Вернее это очень сложно и накладно.
А вот сбросить сессию можно. И тогда ограничение не сработает. Лучше всетаки привязывать к ипу, хотя и это тоже обходится.
Все дело в рентабельности. Crэker правильно заметил, если это супербанк с кучей денек, то тогда стоит задуряться жуткими способами. А для обычного ресурса вряд ли кто будет писать бота, что бы подобрать доступ к аккаунту. Невыгодно это.

Спустя 15 минут, 2 секунды (21.08.2009 - 10:55) ApuktaChehov написал(а):
Это будет система управления полиграфическим предприятием.
Как вы понимаете, там будет конфиденциальная информация.

Спустя 14 минут, 34 секунды (21.08.2009 - 11:09) FatCat написал(а):
Цитата (ApuktaChehov @ 21.08.2009 - 11:55)
система управления полиграфическим предприятием
Цитата (ApuktaChehov @ 21.08.2009 - 11:32)
Без использования баз данных и файлов

... впрячь коня и трепетную лань...

Спустя 15 минут, 57 секунд (21.08.2009 - 11:25) ApuktaChehov написал(а):
Неееет... biggrin.gif
Вы не поняли.

Система управления будет на PostgreSQL.

Я хотел саказать, что защиту от флуда сделать без использование баз данных и файлов. Т.е. что бы не забили сервер постоянными обращениями.

А прикольно получилось. tongue.gif

Самоучитель для чайников.
"Как сделать систему управления предприятием, без использования баз данных и файлов?"

Меня улыбнуло.


_____________
Быстрый ответ:

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