Перейти к основному содержимому

Меню команд

Перейти на страницу или искать в каталоге

ИИ-инструменты и скрипты

Проверка безопасности NestJS

Проверьте приложения NestJS перед развёртыванием: synchronize в TypeORM, жёстко заданные секреты JWT, SQL из шаблонных строк, пробелы в ValidationPipe, открытый CORS, отсутствие helmet и ограничений частоты запросов, доступный Swagger и защитники авторизации, пропускающие запросы.

$5.00

Что вы получите: 1 файл · 57.23 KB · ZIP

Варианты покупки

Описание товара

Одного synchronize: true, оставленного в TypeOrmModule.forRoot, как в примере документации, достаточно, чтобы TypeORM удалил столбец вместе с данными при первом переименовании свойства сущности в рабочей среде. Одно переопределение handleRequest, возвращающее пользователя без выброса исключения, пропускает любой запрос через JwtAuthGuard независимо от наличия токена. Этот навык находит эти и ещё одиннадцать ошибок NestJS до развёртывания и объясняет, как исправить каждую.

Ваш агент запускает сканер для исходного кода NestJS: main.ts, модулей, контроллеров, защитников, стратегий Passport, сущностей и источников данных TypeORM, сервисов и ormconfig.json. Он знает подходы NestJS (useGlobalPipes и APP_PIPE, APP_GUARD с ThrottlerGuard, декоратор @Public() из документации с глобальным JwtAuthGuard, JwtModule.register, ClassSerializerInterceptor с @Exclude), отслеживает SQL через переменные, из которых он формируется, оценивает каждое приложение монорепозитория отдельно, пропускает комментарии и тестовые файлы и принимает обычные исправления (параметры запросов, ParseIntPipe, config.getOrThrow, проверку среды вокруг Swagger). Безопасный пример проекта, написанный по рекомендациям документации NestJS, проходит без замечаний. Сканер никогда не запускает Nest или приложение. Результат: БЛОКИРОВКА, ПРОВЕРКА или НЕ ОТМЕЧЕНО с указанием файла, строки, причины и более безопасного подхода. Секретные данные никогда не выводятся, даже в строках, отмеченных другим правилом.

Что проверяется

БЛОКИРОВКА (исправить до выпуска)

  • NS01: synchronize или dropSchema в TypeORM со значением true либо sync в Sequelize с force или alter в конфигурации приложения

  • NS02: жёстко заданные секреты (JWT secret или secretOrKey, jwtConstants, пароли баз данных и URL подключения в коде или ormconfig.json, явные запасные значения вроде process.env.JWT_SECRET || '...')

  • NS03: SQL, формируемый из изменяемых значений (query(), $queryRawUnsafe, where или having в QueryBuilder с ${...} или +)

ПРОВЕРКА (проверить до выпуска)

  • NS11: отсутствие глобального ValidationPipe или whitelist: true в нём

  • NS12: @Body() или @Query() с типом any, интерфейсом или обобщённым типом либо массивом без ParseArrayPipe

  • NS13: CORS, разрешающий передачу учётных данных с любого источника (origin: true или '*' с credentials: true)

  • NS14: отсутствие helmet в HTTP-приложении

  • NS15: Swagger UI без проверки среды либо принудительно включённые GraphiQL или интроспекция

  • NS16: маршруты входа и другие маршруты аутентификации без ограничения частоты запросов (не подключён ThrottlerGuard или используется @SkipThrottle)

  • NS17: защитники, пропускающие запросы (handleRequest, никогда не выбрасывающий исключений, canActivate, всегда возвращающий true, ignoreExpiration: true)

  • NS18: @Public() на маршрутах или контроллерах, создающих, изменяющих или удаляющих данные

  • NS19: столбцы паролей, которые могут попасть в ответы (нет select: false либо используется @Exclude без ClassSerializerInterceptor)

  • NS20: столбцы сортировки из значений запроса (orderBy(dto.sort), orderByp.${sort})) без проверки по списку разрешённых значений

Что входит в комплект

  • Сканер (Python 3.9+, только стандартная библиотека)

  • Руководство по правилам с обоснованием и более безопасным подходом для каждого правила

  • Примеры проекта NestJS с уязвимостями и безопасного проекта (main.ts, модуль приложения, модуль аутентификации, стратегия и защитник JWT, контроллеры, сущность TypeORM и сервис), а также реальный отчёт сканера для примера с уязвимостями

Ограничения

Сканер читает каждый файл отдельно и при проверке папки учитывает некоторые сведения на уровне приложения (helmet, глобальный pipe, подключённый защитник ограничения запросов, сериализатор). Значения, передаваемые между файлами, классы DTO из других файлов, защитники, создаваемые фабриками, и параметры, формируемые во время выполнения, не отслеживаются. Авторизация внутри обработчиков, CSRF, запросы Mongoose, шлюзы WebSocket и уязвимости зависимостей не проверяются. Статус НЕ ОТМЕЧЕНО не даёт гарантий.

Содержимое архива

Один ZIP-архив с 38 файлами: SKILL.md, сканер в scripts/ (6 файлов Python), references/rules.md (все правила с обоснованием и более безопасным подходом), а также examples/ (29 файлов примеров и report.md, реальный результат сканирования примера с уязвимостями).

Как использовать: Это навык для агента: папка с файлом SKILL.md и скриптами Python, которые может запускать ИИ-агент для разработки, например Claude Code, Cursor или Codex CLI. Распакуйте архив в папку навыков вашего агента (для Claude Code: ~/.claude/skills/), затем попросите агента проверить проект. Скрипты можно запускать и отдельно с Python 3.9 или новее, без установки дополнительных компонентов. Они только читают ваши файлы: не обращаются к сети и ничего никуда не отправляют.

Что вы получите

1 файл · 57.23 KB

  • nestjs-safety-check-1.0.0.zipZIP · 57.23 KB

Включено в Getly ProПолучить Pro

ЛицензияКоммерческое использование разрешено
Опубликовано12 нояб. 2026 г.
Размер файла57.23 KB
Формат файлаZIP
Версияv1.0

Теги

nestjstypescriptbackendapisecurityai agent skill
R
RR HH

Частые вопросы

Доступ открывается сразу?

Да. Это цифровой товар - скачать его можно сразу после оплаты, прямо из своей библиотеки.

Можно ли использовать в коммерческих проектах?

Да. Коммерческое использование разрешено: в своём бизнесе и в том, что вы продаёте. Перепродавать и распространять сам файл нельзя.

Какие условия возврата?

Запросить возврат можно в течение 30 дней. Если что-то не так, оформите заявку в своём заказе - её рассмотрит команда Getly.

Какие форматы и размеры файлов я получу?

Вы скачаете 1 файл - ZIP - всего 57.23 KB.

Обновления бесплатны?

Да - когда продавец выпускает новую версию, вы можете бесплатно скачать актуальные файлы из своей библиотеки. Последние изменения смотрите в истории версий.

Цена

$5.00