Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Авторизация, временная блокировка 
V
    Опции темы
studentigor
Дата 30.10.2012, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 397
Регистрация: 14.11.2008

Репутация: нет
Всего: нет



Всем привет.

Вобщем мне нужно сделать такую штуку. 
Если пользователь 3 раза подряд ввел неправельный пароль - блокируем его на 5 минут.
Если пользователь 5 раз подряд ввел неправельный пароль - блокируем его на 30 минут.

Подскажите как правильно это организовать.

Моя мысля такая
Я в куку создаю массив, в котором ключем будет ip адресс, а значением колличество неудачных попыток попыток авторизации подряд.

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

Возвращаю назад одвет - неправильно. Юзер набирает 2й раз, я смотрю в куку, какой он раз пытается залогинится, если ещё можно, проверяю пароль.
Если пароль неправельный, записываю уже вторую попытку, и время жизни обновляю опять до часа. 
Если попыток больше нету - отдаю ответ что подождите, вы забанены на 5 минут. Через 5 минут он опять 2 раза пытается зайти, у его не получается, и я баню ip уже на полчаса.

Жду ответа
PM MAIL   Вверх
ksnk
Дата 30.10.2012, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Цитата(studentigor @  30.10.2012,  14:33 Найти цитируемый пост)
Я в куку создаю массив, в котором ключем будет ip адресс

Тоесть, чтобы обойти весь механизм, достаточно отключить куки?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
studentigor
Дата 30.10.2012, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 397
Регистрация: 14.11.2008

Репутация: нет
Всего: нет



ну можно не в куку а в кеш к примеру
PM MAIL   Вверх
Aliance
Дата 30.10.2012, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



Цитата(studentigor @  30.10.2012,  15:33 Найти цитируемый пост)
блокируем его на 5 минут.

Цитата(studentigor @  30.10.2012,  15:33 Найти цитируемый пост)
блокируем его на 30 минут.

это однозначно нужно реализовывать путем добавления в таблицу юзеров поля типа timestamp, которое в нормальном условии будет NULL, иначе будет иметь значения, до которого длится бан (например, текущий timestamp + N min). Авторизировать пользователя, если IS_NULL(ban_till).

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

Это сообщение отредактировал(а) Aliance - 30.10.2012, 15:23
PM MAIL WWW ICQ Skype   Вверх
studentigor
Дата 30.10.2012, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 397
Регистрация: 14.11.2008

Репутация: нет
Всего: нет



Про колличество попыток понял.

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


PM MAIL   Вверх
Aliance
Дата 30.10.2012, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



Если под понятием кеша скрывается мемкеш, то это в общем-то та же база данных, только не реляционная. Храни в кеше, только учти, что и памяти он будет кушать больше smile
PM MAIL WWW ICQ Skype   Вверх
studentigor
Дата 31.10.2012, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 397
Регистрация: 14.11.2008

Репутация: нет
Всего: нет



Ну тут просто такое дело, либо лишние запросы, либо больше памяти.

Ок впринципе понятно, спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0467 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.