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

Меню команд

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

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

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

Проверьте серверы и схемы GraphQL перед развёртыванием: принудительно включённую интроспекцию, хеши паролей и ключи API в выходных типах, отсутствие ограничений глубины, GraphiQL в рабочей среде, отключённую CSRF-защиту, трассировки стека, списки без пагинации и пакетные запросы.

$5.00

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

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

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

Одного оставленного introspection: true в настройках Apollo Server достаточно, чтобы любой желающий получил всю рабочую схему, включая административные мутации. Одно поле passwordHash в типе User позволяет любому клиенту прочитать его через post.author или любой другой путь к этому типу. Этот навык находит эти и ещё семь ошибок GraphQL до развёртывания и объясняет, как исправить каждую.

Ваш агент запускает сканер для файлов схем .graphql, .gql и .graphqls, текста схем внутри кода (теги gql, строки #graphql, typeDefs, Ariadne gql), а также серверного кода Apollo Server версий 2-5, NestJS GraphQL, GraphQL Yoga, Mercurius, express-graphql, graphql-http, TypeGraphQL, Strawberry, graphene и graphene-django, Ariadne и gqlgen. Он отличает выходные типы от входных, знает настройки библиотек по умолчанию (Apollo отключает интроспекцию, когда NODE_ENV равен production; Yoga и Strawberry предоставляют GraphiQL, если его не отключить; стартовый server.go в gqlgen включает интроспекцию), принимает настройки с проверкой, исключающей их использование в рабочей среде (NODE_ENV !== 'production', тернарные выражения с isDev, if settings.DEBUG), но не проверки вроде NODE_ENV !== 'test', и просматривает все сканируемые файлы, прежде чем сообщить об отсутствии ограничения глубины или переключателя интроспекции. Данные входа вроде AuthPayload.token, ссылки вроде token: Token, токены пагинации вроде nextToken и поля ключей под защитой директивы авторизации, guard или класса разрешений не отмечаются. Сканер никогда не запускает сервер или приложение. Результат: БЛОКИРОВКА, ПРОВЕРКА или НЕ ОТМЕЧЕНО с указанием файла, строки, причины и более безопасного подхода. Секретные данные никогда не выводятся.

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

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

  • G01: принудительно включённая интроспекция без проверки, исключающей её в рабочей среде (introspection: true в Apollo Server или NestJS, introspection=True в Ariadne)

  • G02: пароли, хеши паролей, номера социального страхования США, номера карт, а также секреты, токены и ключи API, хранящиеся как текст в выходных типах (SDL, Strawberry, graphene, классы @ObjectType в NestJS и TypeGraphQL, типы User в graphene-django или strawberry-django со всеми полями)

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

  • G11: серверы без ограничения глубины или стоимости запросов во всём проекте

  • G12: интроспекция, включённая по умолчанию (Yoga, Mercurius, express-graphql, graphql-http, Strawberry, graphene, Ariadne, gqlgen NewDefaultServer и строка extension.Introspection, которую создаёт gqlgen init)

  • G13: GraphiQL, GraphQL Playground или Apollo Sandbox, доступные в рабочей среде

  • G14: csrfPrevention: false или представление Django GraphQL, обёрнутое в csrf_exempt

  • G15: трассировки стека и необработанные ошибки, отправляемые клиентам (includeStacktraceInErrorResponses, debug, maskedErrors: false, formatError с error.stack)

  • G16: списки в корневых запросах без аргументов first, limit, page или cursor

  • G17: пакетные запросы без ограничения (allowBatchedHttpRequests, настройки Apollo Server 3 по умолчанию, allowBatchedQueries, graphene-django batch=True)

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

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

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

  • Примеры проекта с уязвимостями и безопасного проекта (API магазина на Apollo Server 4 со схемой и резолверами, а также сервис отчётов на Strawberry), и реальный отчёт сканера для примера с уязвимостями

Ограничения

Сканер читает текст файлов. Он не отслеживает настройки сервера, сформированные в другом файле и переданные переменной, схемы, создаваемые во время выполнения, проверки разрешений внутри резолверов и настройки шлюзов или маршрутизаторов (Apollo Router, Hasura, PostGraphile). Проверка среды распознаётся непосредственно вокруг настройки, но не в виде раннего возврата или флага функциональности. Ограничение частоты запросов, аутентификация, сохранённые операции, CORS и уязвимости зависимостей не проверяются. Статус НЕ ОТМЕЧЕНО не даёт гарантий.

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

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

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

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

1 файл · 45.78 KB

  • graphql-api-safety-check-1.0.0.zipZIP · 45.78 KB

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

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

Теги

graphqlapolloapibackendsecurityai agent skill
R
RR HH

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

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

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

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

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

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

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

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

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

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

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

Цена

$5.00