Это на самом деле не проблема, а предупреждение системы безопасности.
Проверяли ли вы описание ошибки в SonarQube?
Оценка регулярных выражений по отношению к входным строкам потенциально чрезвычайно сложна. Процессорная нагрузка. Специально созданные регулярные выражения, такие как (a +) + s, потребуют несколько секунд для оценки входной строки , Однако эквивалентное регулярное выражение a + s (без группировки) эффективно оценивается в миллисекундах и масштабируется линейно в зависимости от размера ввода.
Оценка таких регулярных выражений открывает путь к атакам типа «Отказ в обслуживании» (ReDoS) для регулярных выражений , В контексте веб-приложения злоумышленники могут заставить веб-сервер тратить все свои ресурсы на оценку регулярных выражений, что делает службу недоступной для подлинных пользователей.
Это правило помечает любое выполнение жестко закодированного регулярного выражения, которое имеет не менее 3 символов и не менее двух экземпляров любого из следующих символов: * + {.
Пример: (a +) *
Задайте себе вопрос • Чувствительно ли выполненное регулярное выражение и Пользователь может предоставить строку, которая будет проанализирована этим регулярным выражением. • снижение производительности вашего механизма регулярных выражений с помощью специально созданных входных данных и регулярных выражений.
Вы можете быть в опасности, если ответите «да» на любой из этих вопросов.
Чтобы решить эту проблему, вам необходимо проверить, не рискует ли RegEx. Если нет, вы можете просто отметить его как ложное срабатывание, в противном случае проверка регулярного выражения может быть обязательной.