Я раньше такого не видел, но могу предположить, почему он там есть.
Действие allow
является разрушительным. Когда ModSecurity работает в режиме DetectionOnly
, разрушительные действия (включая allow
) фактически не выполняются. Это означает, что все последующие правила все еще выполняются - даже если они не будут выполняться при работе в обычном режиме On
. Это может сделать журналы очень шумными, а также заставить вас думать, что вам нужно настроить больше правил, которые вам на самом деле не нужны.
Действие ctl
не прерывает работу и выполняется даже в DetectionOnly
Режим. Поэтому, добавив ctl:ruleEngine=Off
к любому allow
правилу, вы можете получить только реальные ошибки, регистрирующие в режиме «Только обнаружение».
Я фактически сделал обратное и использовал ctl:ruleEngine=On
, чтобы действие allow
вступило в силу даже в режиме DetectionOnly
. Например, у меня есть правило, в начале всех моих правил, просматривать вызовы GET без параметров на страницах index.html и говорить, что они достаточно безопасны, поэтому нет необходимости запускать на них остальные правила. Это экономит время обработки и ложные флаги.