Код без серверов
Serverless — модель, в которой ты загружаешь только код функции, а провайдер сам запускает её по событию, масштабирует и обслуживает серверы.
При чём тут безопасность: патчить ОС больше не нужно — это задача провайдера. Но код, права и данные остаются твоими.
Примеры
- AWS Lambda, Azure Functions, Google Cloud Run functions.
- Supabase Edge Functions — на них работает сервер этого самого приложения: функции
api,bot-webhookиreminders.
Функция запускается по событию: HTTP-запрос, сообщение в очереди, загрузка файла, расписание.
Что остаётся на тебе
- Права функции: давать ровно те доступы, что нужны. Функция с правами администратора — огромный риск при её взломе.
- Проверка входных данных: событие может прийти от злоумышленника.
- Секреты: в защищённых настройках, не в коде.
- Зависимости: уязвимые библиотеки попадают в каждую функцию.
Пример из этого проекта
Функция api приложения CyberStreak:
- проверяет подпись Telegram у каждого запроса;
- валидирует все входные данные через zod;
- ограничивает число запросов;
- хранит токен бота только в секретах Supabase;
- не пишет в журналы личные данные.
Это и есть безопасность serverless на практике.
Главное за урок
- Serverless: ты даёшь код, провайдер — серверы и масштабирование.
- На тебе остаются права функции, проверка ввода, секреты и зависимости.
- Серверная часть этого приложения — пример serverless-функций.