Исправление правила регулярного выражения fail2ban для фильтра php-url-fopen

Я исправляю фильтр по умолчанию php-url-fopen , чтобы разрешить некоторые параметры запроса GET, которые я использую в своей системе (он не является общедоступным, но я все равно хотел бы чтобы заблокировать ненужные запросы). Проблема в том, что у меня есть рабочее регулярное выражение для одного имени параметра, но я не могу получить рабочее регулярное выражение для двух параметров, где второй параметр объединен из двух имен. Я использую fail2ban 0.8.11 - вот работает (не работает) регулярное выражение:

^<HOST> -.*"(GET|POST).*\?.*(?<!outer)\=http\:\/\/.* HTTP\/.*$

А вот регулярное выражение, которое не работает:

^<HOST> -.*"(GET|POST).*\?.*(?<!outer|type\=outer\&url)\=http\:\/\/.* HTTP\/.*$

Когда я пытаюсь запустить службу fail2ban с неработающим регулярным выражением, я получаю следующее message:

ERROR  NOK: ('Unable to compile regular expression \'^(?:::f{4,6}:)?(?P<host>[\\w\\-.^_]*\\w) -.*"(GET|POST).*\\?.*(?<!outer|type\\=outer\\&url)\\=http\\:\\/\\/.* HTTP\\/.*$\'',)

Любая помощь будет принята с благодарностью.

1
задан 1 July 2016 в 16:20
1 ответ

Решение моего второе регулярное выражение:

^<HOST> -.*"(GET|POST).*\?.*(?<!outer)(?<!type\=outer\&url)\=http\:\/\/.* HTTP\/.*$

Оба слова / параметра в запросе GET должны быть разделены и содержаться только в одном отрицательном поиске назад.

0
ответ дан 4 December 2019 в 06:08

Теги

Похожие вопросы