Новое в Symfony 5.2: Регулирование входа в систему

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

Одна из лучших мер противодействия этим атакам — это «регулирование входа в систему», при котором пользователю запрещается вход в систему после определенного количества неудачных попыток. Благодаря недавно добавленному компоненту 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 начнет их блокировать.