umbot
    Preparing search index...
    • Middleware для фильтрации входящих запросов по IP-адресу клиента.

      IP клиента фреймворк берёт из сокета в bot.start() / bot.webhookHandle(). В serverless его нужно передать явно: bot.webhookEvent(body, headers, clientIp) (обработчик, сгенерированный CLI для Yandex Cloud Functions, берёт IP из event.requestContext.identity.sourceIp). Если IP неизвестен (например, bot.run(...) напрямую), запрос пропускается — либо отклоняется при rejectWithoutIp: true.

      За reverse proxy (nginx и т.п.) все запросы будут иметь IP самого прокси: IP берётся из сокета, а не из X-Forwarded-For (его подделывает клиент). За прокси ограничивайте доступ на уровне самого прокси.

      Parameters

      • options: IIpFilterOptions

        Конфигурация фильтра (whitelist или blacklist).

      Returns (ctx: BotController, next: MiddlewareNext) => Promise<void>

      Middleware для bot.use(...).

      import { ipFilter } from 'umbot/middleware';

      // Только адреса из доверенных сетей (например, диапазоны IP платформы);
      // запрос без известного IP клиента тоже отклоняется
      bot.use(ipFilter({
      whitelist: ['203.0.113.0/24', '198.51.100.0/24'],
      deniedText: 'Forbidden',
      rejectWithoutIp: true,
      }));

      // Запретить спам-IP
      bot.use(ipFilter({ blacklist: ['203.0.113.42', '198.51.100.0/24'] }));