CodeAuditAgent

Безопасный код — быстрее.

Ваш автономный инженер по безопасности. Проверяйте код на GitHub, находите уязвимости и сразу получайте патчи, созданные ИИ.

acme/storefront · src/api/users.ts
Пример
КритическийCWE-89

SQL-инъекция в поиске пользователей

req.query.name подставляется в запрос конкатенацией, поэтому любой посетитель может прочитать или удалить таблицу users.

41  export async function search(req) {- 42    const q = `SELECT * FROM users WHERE name = '${req.query.name}'`;+ 42    const q = 'SELECT * FROM users WHERE name = $1';+ 43    return db.query(q, [req.query.name]);
Патч готов к ревьюClaude Fable 5.1
Демонстрационный пример: критическая SQL-инъекция (CWE-89) и патч с параметризованным запросом.

Ревью безопасности каждого изменения — без ожидания.

Глубина опытного аудитора в темпе вашей очереди мержей.

Глубокий поиск уязвимостей

Отслеживает данные от запроса до базы данных и находит инъекции, нарушения контроля доступа, утечки секретов, SSRF и логические ошибки, которые пропускают линтеры на шаблонах. Каждая находка сопоставлена с CWE.

Мгновенные патчи

К каждой находке прилагается конкретный патч для вашего кода и описание эксплойта, который он закрывает. Вы смотрите diff, а не лекцию.

На базе Claude Fable 5.1

Аудиты выполняются на Claude Fable 5.1 по инструкции опытного аудитора безопасности: цитировать доказательства, оценивать критичность по реальной эксплуатируемости и честно указывать уверенность.

Посмотрите отчёт до первого запуска.

Оценка риска, которую можно обосновать, и находки, с которыми можно работать уже через несколько минут.

acme/storefront · пример отчёта · демонстрационные данные

Для каждой находки: точная строка, класс CWE и патч. Нажмите, чтобы развернуть.

Оценка риска
82
Прочитано файлов
37
  • 01КритическийСекретный ключ Stripe прописан в коде

    lib/billing.ts:3

    - const stripe = new Stripe("sk_live_51H…");

    + const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!); // and rotate the leaked key

  • 02ВысокийНет проверки владельца при скачивании счёта

    app/api/invoices/[id]/route.ts:12

    - const invoice = await db.invoice.findUnique({ where: { id } });

    + const invoice = await db.invoice.findFirst({ where: { id, userId: session.user.id } });

  • 03СреднийОткрытый редирект после входа

    app/login/page.tsx:27

    - router.push(searchParams.get('next') ?? '/');

    + router.push(safeRelativePath(searchParams.get('next')));

Простые цены

Начните бесплатно, затем выберите тариф под ваши репозитории.

Starter

Для инди-разработчиков и небольших команд, которые быстро выпускают релизы.

$49/мес.

  • Репозитории: 5
  • Аудиты: 50 в месяц
  • Базовые аудиты (до 40 файлов за запуск)
  • Находки с CWE и патчами
Попробовать бесплатно
Для команд

Pro

Для растущих команд, которые проверяют много репозиториев.

$199/мес.

  • Безлимитные репозитории
  • Аудиты: 500 в месяц
  • Глубокие агентные аудиты (до 80 файлов за запуск)
  • Приоритетная поддержка
Попробовать бесплатно

Бесплатный тариф: 1 репозиторий и 3 аудита в месяц. Банковская карта не нужна.