Intereting Posts
мобильные браузеры не могут войти на мой сайт Не удалось получить данные объекта Yii2, возвращенные как Json как передать данные изображения uri из javascript в php Предупреждение: mysql_fetch_object (): предоставленный аргумент не является допустимым ресурсом результата MySQL преимущества «HTTP-аутентификации с помощью PHP» Каковы преимущества создания хранимых процедур в SQL и MySQL? PHPExcel занимает очень много времени, чтобы прочитать файл Excel mysql Выберите один столбец дважды из той же таблицы с разными датами в предложении where C # SHA-1 против PHP SHA-1 … Различные результаты? Как совместить несколько слов в регулярном выражении Запустить команду Bash из PHP Работа с лесом двоичных деревьев, хранящихся в большом XML-файле (PHP) Symfony2- Форма входа снова появляется после входа в систему мой веб-URL не работает в календаре Google Автоматизировать разрешение Entrust с доступом к параметрам имени маршрута и проверить разрешение пользователя

Включить Captcha после нескольких попыток входа в систему – Как это реализовать?

Я работаю над системой auth с ошибкой входа.
Если пользователь не может войти в систему, число попыток в базе данных увеличивается и, если достигается определенный предел, PHP устанавливает переменную skcha сеанса в значение true.
Поэтому, когда пользователь (или спам-бот) снова получает страницу входа в систему, отображается форма отслеживания за счет переменной сеанса

Но поскольку спам-боты в конечном итоге могут удалить cookie сеанса и повторить попытку, это может быть неэффективно.

Должен ли я использовать решение для базы данных? Как бы вы реализовали это (с / или без базы данных)?

Related of "Включить Captcha после нескольких попыток входа в систему – Как это реализовать?"

Спам-боты могут довольно легко обойти ограничения сеанса, поэтому в базе данных это должно быть эффективно. Спам-боты могут также менять свой IP-адрес на каждый запрос, хотя этого труднее достичь.

Вам нужно будет поместить поле попыток входа в таблицу users, которое начинается с 0, увеличивать это, когда они ошибочно вводят пароль, и сбрасывать его до 0 при успешном входе в систему. Когда кто-то пытается войти в систему как пользователь с попытками входа в систему> 5, вы затем переведете их на другую страницу с надписью, которую они должны ввести правильно (даже если пароль был неправильным).

Я бы просто записал переменную сеанса пользователя, а затем подсчитал, сколько раз форма отправляется для IP-адреса.

Из моей точки зрения просто возьмите имя пользователя, когда он попытается войти в систему на вашей странице PHP, если он / она не попытается, а затем сохранить имя пользователя в таблицах Login_attempts и его IP-адрес. Увеличьте столбец неудачных попыток и проверьте, больше ли это пороговое значение вашего, пусть говорят 5, и если он не сработал, добавьте к нему капчу, а также проверьте бок о бок IP не меняется с каждой попыткой с определенным интервалом времени, скажем, в течение 1 минуты IP-адрес должен оставаться таким же, если он терпит неудачу, а затем не удается выполнить попытки входа в систему.

Для лучшего использования NOSQL or memcache для извлечения быстрых данных из базы данных.