![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| studentigor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 397 Регистрация: 14.11.2008 Репутация: нет Всего: нет |
Всем привет.
Вобщем мне нужно сделать такую штуку. Если пользователь 3 раза подряд ввел неправельный пароль - блокируем его на 5 минут. Если пользователь 5 раз подряд ввел неправельный пароль - блокируем его на 30 минут. Подскажите как правильно это организовать. Моя мысля такая Я в куку создаю массив, в котором ключем будет ip адресс, а значением колличество неудачных попыток попыток авторизации подряд. При неудачной попытке авторизироватся, я записываю в куку айпишник и кол-во попыток(ну скажем первая), и создаю к примеру такую запись на час. Возвращаю назад одвет - неправильно. Юзер набирает 2й раз, я смотрю в куку, какой он раз пытается залогинится, если ещё можно, проверяю пароль. Если пароль неправельный, записываю уже вторую попытку, и время жизни обновляю опять до часа. Если попыток больше нету - отдаю ответ что подождите, вы забанены на 5 минут. Через 5 минут он опять 2 раза пытается зайти, у его не получается, и я баню ip уже на полчаса. Жду ответа |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Тоесть, чтобы обойти весь механизм, достаточно отключить куки? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| studentigor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 397 Регистрация: 14.11.2008 Репутация: нет Всего: нет |
ну можно не в куку а в кеш к примеру
|
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 14 Всего: 137 |
это однозначно нужно реализовывать путем добавления в таблицу юзеров поля типа timestamp, которое в нормальном условии будет NULL, иначе будет иметь значения, до которого длится бан (например, текущий timestamp + N min). Авторизировать пользователя, если IS_NULL(ban_till). Что же касается хранения числа попыток неудачного ввода пароля, то тут конечно это делать нужно на сервере. Либо в ту же табличку юзеров, либо в мемкеш какой-нибудь. При удачном вводе пароля - счетчик стирается. Это сообщение отредактировал(а) Aliance - 30.10.2012, 15:23 |
|||
|
||||
| studentigor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 397 Регистрация: 14.11.2008 Репутация: нет Всего: нет |
Про колличество попыток понял.
А вот про время бана, панируется что сайт будет под большие нагрузки, и поэтому нужно минимизировать запросы к базе, тоесть если есть возможность туда не ходить - то использовать её. Я понимаю что тут выбор одного поля, но всеже. мб и его хранить в кеше? Так я на самом входе в контроллер сделаю проверку и даже не буду проверять ни логин ни пароль. Вобщем зарание буду занить делать мне запрос к базе или нет. |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 14 Всего: 137 |
Если под понятием кеша скрывается мемкеш, то это в общем-то та же база данных, только не реляционная. Храни в кеше, только учти, что и памяти он будет кушать больше
|
|||
|
||||
| studentigor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 397 Регистрация: 14.11.2008 Репутация: нет Всего: нет |
Ну тут просто такое дело, либо лишние запросы, либо больше памяти.
Ок впринципе понятно, спасибо. |
|||
|
||||
![]()
|
| Правила форума "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. |