AB dyagil-supabase-security-audit
Аудит проекта Supabase + Vercel на предмет покрытия RLS, повышения привилегий, утечек данных между клиентами, анонимного раскрытия, корректности потока magic-link и заголовков безопасности HTTP — и применяйте шаблоны экстренного исправления при обнаружении проблем. Используйте всякий раз, когда пользователь спрашивает о безопасности / RLS / аудитах, после любой миграции, затрагивающей таблицы типа `profiles` или аутентификацию, или перед раскрытием новой клиентской поверхности.
машинный переводПоказать оригиналСкрыть оригинал«Audit a Supabase + Vercel project for RLS coverage, privilege escalati…»
Audit a Supabase + Vercel project for RLS coverage, privilege escalation, cross-customer data leaks, anonymous exposure, magic-link flow correctness, and HTTP security headers — and apply hotfix templates when issues are found. Use whenever the user asks about security / RLS / audits, after any migration that touches `profiles`-like tables or auth, or before exposing a new customer-facing surface.
Аудит проекта Supabase + Vercel на предмет покрытия RLS, повышения привилегий, утечек данных между клиентами, анонимного раскрытия, корректности потока…
Как процесс B 65/100 · Почти готов — слабые места: результат и критерий готовности, повторный запуск
Как улучшить
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 5
✓ Критических и высоких находок нет
Средние и низкие: 5
-
низкая Рискованное назначение
intent-offensive-securityskill-card.md:2Наступательная безопасность / двойное назначение (допустимо для авторизованного тестирования; проверьте назначение)Audits Supabase and Vercel projects for RLS coverage, privilege escalation, cross-customer data leaks, anonymous exposure, magic-link flow correctness, and HTTP security headers, then points agents to
-
низкая Рискованное назначение
intent-offensive-securitySKILL.md:3Наступательная безопасность / двойное назначение (допустимо для авторизованного тестирования; проверьте назначение)description: Audit a Supabase + Vercel project for RLS coverage, privilege escalation, cross-customer data leaks, anonymous exposure, magic-link flow correctness, and HTTP security headers — and apply
-
низкая Рискованное назначение
intent-offensive-securitySKILL.md:58Наступательная безопасность / двойное назначение (допустимо для авторизованного тестирования; проверьте назначение)Output is grouped: RLS coverage → anonymous exposure → UPDATE policies → live privilege escalation → cross-customer leaks → HTTP headers → summary.
-
низкая Рискованное назначение
intent-offensive-securitySKILL.md:70Наступательная безопасность / двойное назначение (допустимо для авторизованного тестирования; проверьте назначение) (в кавычках — упоминание, а не команда)The most common critical finding is **"UPDATE policy lacks WITH CHECK on role/email — privilege escalation risk"**. That has a turn-key SQL template:
в кавычках -
низкая Рискованное назначение
intent-offensive-securitySKILL.md:88Наступательная безопасность / двойное назначение (допустимо для авторизованного тестирования; проверьте назначение)- **Penetration testing of business logic** (e.g. "can a customer call `/api/send-portal-link` for another customer's id?"). Spot-check those manually by tracing each `api/*.js` endpoint's auth check.
Просканировано файлов: 5. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
✓ По спецификации Agent Skills замечаний нет
Процессный рейтинг: все десять параметров 65/100
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 30Повторный запуск. Изменяющих операций: 3, без проверки текущего состояния
- 55Ошибки и развилки. Развилок: 1
- 60Инструменты и файлы. Используются инструменты (bash, node), но во frontmatter они не объявлены
- 70Когда включается. Сказано, когда применять, но не сказано, когда не стоит
- 70Входы и предусловия. Входные данные и предусловия перечислены
- 100Шаги. Шагов: 17
- 100Согласованность. Имя и обязательные поля на месте
- 100Стоимость исполнения. Тело инструкции 987 токенов
- 100Отчётность по ходу. Скилл сообщает о ходе работы
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Формат ответа не описан: модель каждый раз решает сама
- +2Инструкции на одном языке
- +3Длина description 400 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 10 заголовков
- +3Пошаговые инструкции: 17 пунктов
- +4Есть примеры (4 блоков кода)
- +4Справочные файлы упоминаются в инструкциях (1 из 1)
- +3Все 1 скриптов описаны в инструкциях
- +1Лицензия указана
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 92.