# supabase-audit-buckets-read

Скилл перебирает файлы в бакетах Supabase Storage и показывает, что реально доступно по anon-ключу. Пригодится, когда нужно проверить политики RLS до релиза.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 471 установка · ★ 71
- Автор: yoanbernabeu
- Лицензия: MIT · policy=mirror · лицензия открытая, файл — в исходнике
- Исходник: https://github.com/yoanbernabeu/supabase-pentest-skills/tree/HEAD/skills/audit-storage/supabase-audit-buckets-read/SKILL.md
- Обновлён: 2026-01-31
- HTML: https://affpapa.org/nevibecode/skills/supabase-audit-buckets-read

## Что делает

Скилл проходит по каждому бакету и пробует четыре вещи: получить список файлов, прочитать метаданные, скачать образец для проверки типа содержимого и открыть файл по публичному URL. Запись и удаление не выполняются, тест только на чтение. Публичные бакеты проверяются прямым URL, приватные — через API с anon-ключом.

Найденное скилл раскладывает по приоритетам. Дампы баз (`*.sql`, `backup*`), файлы секретов (`.env*`, `*secrets*`) и учётные данные получают P0, счета, договоры, сканы документов и выгрузки — P1. Для доступных файлов он заглядывает внутрь и ищет ключи вида `sk_live_`, строки подключения к базе и JWT-секреты. Результаты пишутся в `.sb-pentest-context.json` сразу после каждого бакета, а в `.sb-pentest-audit.log` — до и после каждой проверки файла. Если скилл прервётся, находки уже сохранены.

Перед запуском нужен anon-ключ проекта. Список бакетов скилл получает сам, вызывая предыдущий шаг, если тот ещё не отработал. Отдельно стоит помнить: публичный бакет с выгрузкой пользователей или бэкапом базы — это не мелочь, а повод немедленно закрыть доступ и отозвать все засветившиеся ключи.

## Требования
- Работает с: Supabase

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add yoanbernabeu/supabase-pentest-skills --skill supabase-audit-buckets-read -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/supabase-audit-buckets-read/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/supabase-audit-buckets-read/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add yoanbernabeu/supabase-pentest-skills --skill supabase-audit-buckets-read -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/supabase-audit-buckets-read/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add yoanbernabeu/supabase-pentest-skills --skill supabase-audit-buckets-read -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/supabase-audit-buckets-read/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install yoanbernabeu/supabase-pentest-skills supabase-audit-buckets-read
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/supabase-audit-buckets-read/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add yoanbernabeu/supabase-pentest-skills --skill supabase-audit-buckets-read -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/yoanbernabeu/supabase-pentest-skills --path skills/audit-storage/supabase-audit-buckets-read
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/supabase-audit-buckets-read/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add yoanbernabeu/supabase-pentest-skills --skill supabase-audit-buckets-read -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/yoanbernabeu/supabase-pentest-skills/tree/HEAD/skills/audit-storage/supabase-audit-buckets-read/SKILL.md

## Когда брать
- проверить, что приватные бакеты не отдают файлы по anon-ключу
- найти дампы базы и файлы секретов в публичном хранилище
- оценить, какие документы утекают через публичные URL
- собрать отчёт о доступных файлах с приоритетами P0 и P1
- убедиться, что политики RLS в Storage работают как задумано

## Примеры запросов агенту
- Проверь доступ на чтение к бакетам storage
- Протестируй доступ к файлам в бакете documents
- Покажи список доступных файлов без скачивания содержимого

## Похожие
- [supabase-security-audit](https://affpapa.org/nevibecode/commands/supabase-security-audit.md) — команда · 1020 установок
- [supabase-postgres-best-practices](https://affpapa.org/nevibecode/skills/supabase-postgres-best-practices.md) — скилл · 40 установок
- [supabase](https://affpapa.org/nevibecode/skills/supabase.md) — скилл · 8 установок
- [supabase-development](https://affpapa.org/nevibecode/skills/supabase-development.md) — скилл · 699 установок
- [supabase-schema-architect](https://affpapa.org/nevibecode/agents/supabase-schema-architect.md) — субагент · 3839 установок
- [nextjs15-supabase-cursorrules-prompt-file](https://affpapa.org/nevibecode/rules/nextjs15-supabase-cursorrules-prompt-file.md) — правило · ★ 41011

Из того же набора: [yoanbernabeu/supabase-pentest-skills](https://affpapa.org/nevibecode/by/yoanbernabeu/supabase-pentest-skills.md) — 11 карточек

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
