Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
filtron — Фильтрующий обратный HTTP-прокси | Kitploit
Инструменты/GitHubGitHub/asciimoo/filtron
Оборонительные ИнструментыВеб-безопасностьБезопасность API
GitHubasciimoo/filtron

filtron

Фильтрующий обратный HTTP-прокси

Репозиторий
174263 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Filtron

Обратный HTTP-прокси для фильтрации запросов по различным правилам. Может использоваться между продакшн-веб-сервером и сервером приложений для предотвращения злоупотреблений бэкендом приложения.

Изначальная цель программы — защита searx, но она может использоваться для защиты любого веб-приложения.

Установка и настройка

root@kitploit:~
$ go install github.com/asciimoo/filtron
$ "$GOPATH/bin/filtron" --help

Правила

Правило имеет два обязательных атрибута: name и actions

Правило может содержать следующие атрибуты:

  • limit целое число — Определяет, сколько соответствующих запросов разрешено к приложению в течение interval секунд. (Может быть опущено, если 0)
  • interval целое число — Временной интервал в секундах для сброса счётчиков правила (Может быть опущено, если limit равен 0)
  • filters список селекторов
  • aggregations список селекторов (если задан filters, активируется только при совпадении фильтра)
  • subrules список правил (если задан filters, активируется только при совпадении фильтра)
  • disabled bool — Отключает правило (по умолчанию false)
  • stop bool — Немедленно завершить проверку запроса и пропустить остальные правила (по умолчанию false)

JSON-представление правила:

root@kitploit:~
{
    "name": "example rule",
    "interval": 60,
    "limit": 10,
    "filters": ["GET:q", "Header:User-Agent=^curl"],
    "actions": [
        {"name": "log",
         "params": {"destination": "stderr"}},
        {"name": "block",
         "params": {"message": "Not allowed"}}
     ]
}

Пояснение: Разрешить только 10 запросов в минуту, где q является GET-параметром, а заголовок User-Agent начинается с curl. Запрос логируется в STDERR и блокируется с пользовательским сообщением об ошибке, если лимит превышен. Больше примеров здесь.

действия

Действия правила активируются последовательно, если запрос превышает лимит правила.

Примечание: Будет выполнено только первое действие правила, которое возвращает пользовательский ответ.

Реализованные действия

log

Логировать запрос

block

Вернуть HTTP-ответ 429 вместо передачи запроса приложению

shell

Выполнить команду оболочки. cmd (строка) и args (список селекторов) — обязательные параметры (Пример: {"name": "shell", "params": {"cmd": "echo %v is the IP", "args": ["IP"]}})

фильтры

Если все селекторы найдены, счётчик увеличивается. Правило блокирует запрос, если счётчик достигает limit

агрегации

Подсчитывает значения, возвращаемые селекторами. Правило блокирует запрос, если количество любого значения достигает limit

подправила

Каждое правило может содержать любое количество подправил. Активируется при совпадении фильтра родительского правила.

Селекторы

Различные части запроса могут быть извлечены с помощью выражений селекторов.

Селекторы — это строки, которые могут соответствовать любому атрибуту HTTP-запроса со следующим синтаксисом:

root@kitploit:~
[!]RequestAttribute[:SubAttribute][=Expression]
  • ! может инвертировать селектор
  • RequestAttribute (обязательно) выбирает конкретную часть запроса — возможные значения:
    • Единичное значение
      • IP
      • Host
      • Path
      • Method
    • Несколько значений
      • GET
      • POST
      • Param — псевдоним для GET и POST
      • Cookie
      • Header
  • SubAttribute если не является единичным значением, может указывать внутренний атрибут

Примеры

IP возвращает IP-адрес клиента

GET:x возвращает GET-параметр x, если он существует

!Header:Accept-Language возвращает true, если нет HTTP-заголовка Accept-Language

Path=^/(x|y)$ совпадает, если путь равен /x или /y

IP=nslookup(example.com) совпадает, если IP-адрес клиента является одним из IP-адресов example.com.

API

Filtron можно настроить через его REST API, который по умолчанию слушает 127.0.0.1:4005.

Эндпоинты API

/rules

Загруженные правила в формате JSON

/rules/reload

Перезагрузить файл правил, указанный при запуске

Веб-интерфейс

UI построен на API

webui

Ошибки

Ошибки или предложения? Посетите трекер задач.

Скачать инструмент
RequestAttribute
  • Expression возможные значения:
    • регулярное выражение для фильтрации выбранных значений атрибутов.
    • nslookup(Hostname) для фильтрации выбранных значений атрибутов по IP-адресам Hostname. Filtron разрешает Hostname в его IP-адреса при загрузке правила (IPv4 и IPv6).