Конфигурация фильтра (whitelist или blacklist).
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'] }));
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(его подделывает клиент). За прокси ограничивайте доступ на уровне самого прокси.