Я не хочу, чтобы сервер был принудительным, но я не хочу использовать CAPTCHA, поскольку они не являются дружественными к пользователю/Я не хочу полагаться на другую компанию - потому что я не собираюсь реализовывать свою собственную систему captcha.Как заблокировать попытки входа в систему с помощью SQL
Я думал о создании attempts
таблицы с этой структурой:
________________________________________________________________
| IP | ATTEMPTS | LOCK |
|‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾|
| 1.1.1.1 | 0 | 2 |
| .... | .... | .... |
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ Yes I had fun making this
И пусть пользователь имеет 5-10 попыток, перед сбросом в 0 и увеличение блокировки времени на коэффициент 2 - это за несколько минут.
Является ли это хорошим методом блокировки грубой силы?
Я бы логику, как это на моем сервере: - абстрагироваться
....
* on request to server do below *
db.query("SELECT * FROM attempts WHERE IP= *REQUEST.IP* ",function(result){
if (result.rows.length > 0 && result.rows[0].attempts > 5) {
if (CheckIfExpired(results.rows[0].lock)) {
if (loginFail) MultplyLockBy2();
else RemoveFromAttemptsTable();
} else res.status("403").send("You're locked out");
} else normalLoginAttempt().ifFal(add1toAttempts());
....
У меня есть ощущение, что есть более эффективный способ сделать это изначально в SQL, я новичок в SQL. (Я использую postgresql).
Посмотрев на это, я предполагаю, что мне понадобится поле для начала, поэтому я могу рассчитать, когда истек срок блокировки.
ASP.net + Njinx/Apache + сессий + ...! = Node.js + SQL
@NeilMcGuigan Это, безусловно, не дубликат вопроса ASP.Net –
. На мой взгляд, принятый ответ (ваш) на самом деле довольно плох, поскольку он включает в себя запись состояния для неавторизованных вызовов (т. Е. Злоумышленник может заполнить ваш диск, используя разные имена пользователей для каждого вызова). Я бы * рассмотрел * ваш ответ * на Windows paltforms *, где нечто вроде 'fail2ban' не доступно. Для приложения nodejs, работающего в предположительно среде Linux, уже есть лучшее решение, готовое, проверенное, широко используемое. –
Я действительно смущен. Я думаю, что могу реализовать fail2ban; Я реализую этот файл cookie, который всегда позволяет пользователю подключаться обратно к своей учетной записи без captcha; и я также могу использовать капчу в сочетании с локаутом; это хорошее решение? –