Распространенная атака грубой силы на веб-приложения состоит в том, что злоумышленник много раз отправляет форму входа в систему в надежде в конечном итоге угадать пароль какой-либо учетной записи.
Одна из лучших мер противодействия этим атакам — это «регулирование входа в систему», при котором пользователю запрещается вход в систему после определенного количества неудачных попыток. Благодаря недавно добавленному компоненту RateLimiter, Symfony 5.2 обеспечит регулирование входа в систему из коробки.
Во-первых, убедитесь, что вы используете новую систему безопасности на основе аутентификатора. Затем добавьте в свой брандмауэр следующую конфигурацию:
# config/packages/security.yaml
security:
firewalls:
default:
# by default, the feature allows 5 login attempts per minute
login_throttling: ~
# configuring the maximum login attempts (per minute)
login_throttling:
max_attempts: 1
# you can even use a custom rate limiter via its service ID
login_throttling:
limiter: app.my_login_rate_limiter
Вот и все. В следующий раз, когда злоумышленник попытается сделать слишком много попыток входа в систему, ваше приложение Symfony начнет их блокировать.