Вони, здається, є внутрішніми налаштуваннями для двигуна PCRE, щоб обмежити максимальну кількість пам'яті / часу, витраченого на спробу співставлення деякого тексту з малюнком. pcreapi
Сторінка керівництва робить мало , щоб пояснити це з точки зору непрофесіонала:
Поле match_limit надає засоби запобігання використанню PCRE величезної кількості ресурсів під час запуску шаблонів, які не збираються відповідати, але які мають дуже велику кількість можливостей у своїх деревах пошуку. Класичним прикладом є використання вкладених необмежених повторів.
Всередині PCRE використовується функція, яка називається match (), яку вона викликає повторно (іноді рекурсивно). Ліміт, встановлений match_limit, накладається на кількість викликів цієї функції під час матчу, що впливає на обмеження кількості зворотних трекінгів, які можуть відбутися. Для шаблонів, які не закріплені, підрахунок перезавантажується з нуля для кожної позиції в предметному рядку.
Значення за замовчуванням для ліміту може бути встановлено під час побудови PCRE; за замовчуванням - 10 мільйонів, що стосується всіх, крім самих крайніх випадків. Ви можете змінити за замовчуванням, доповнивши pcre_exec () блоком pcre_extra, у якому встановлено match_limit, а PCRE_EXTRA_MATCH_LIMIT встановлено у полі прапорів. Якщо ліміт перевищено, pcre_exec () повертає PCRE_ERROR_MATCHLIMIT.
Поле match_limit_recursion схоже на match_limit, але замість обмеження загальної кількості викликів відповідності () воно обмежує глибину рекурсії. Глибина рекурсії - менша кількість, ніж загальна кількість викликів, оскільки не всі дзвінки, які відповідають (), мають рекурсивний характер. Цей ліміт використовується лише в тому випадку, якщо він встановлений менше, ніж match_limit.
Оскільки вбудована за замовчуванням бібліотека PCRE становить 10000000, я здогадуюсь, що нижча настройка пропонується для mod_security, щоб запобігти затримці запитів протягом тривалого часу.