# supabase-audit-rls

Проверяет политики Row Level Security в Supabase на обходы и типичные ошибки настройки. Пригодится, когда таблицы уже отдают данные наружу.

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

## Что делает

Скилл прогоняет таблицы Supabase через набор тестовых сценариев: доступ без авторизации, чтение чужих строк под токеном другого пользователя, обход фильтров через OR-условия, утечка через связанные таблицы и вызовы RPC в обход политик. По каждой таблице видно, включён ли RLS, какие политики найдены и что именно они разрешают.

Находки пишутся в `.sb-pentest-context.json` сразу после обнаружения, а ход проверки — в `.sb-pentest-audit.log` до и после каждого теста. Так сделано потому, что при падении или прерывании скилла уже собранные результаты остаются на диске. Отчёт размечает проблемы по приоритетам: P0 — таблица вообще без RLS, P1 — дыры поменьше, вроде политики SELECT без INSERT или расхождения между USING и WITH CHECK.

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

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

## Установка

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

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

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

### Codex

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

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

### Cursor

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

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

### GitHub Copilot

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

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

### Gemini CLI

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

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

### Windsurf (Devin Desktop)

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

### OpenCode

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

### Claude.ai

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

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

## Когда брать
- найти таблицы Supabase, открытые без RLS
- проверить, читает ли анонимный ключ чужие строки
- поймать обход фильтров через OR-условия в REST-запросах
- выявить утечку данных через связанные таблицы и RPC-функции
- разметить найденные дыры по приоритетам P0 и P1

## Примеры запросов агенту
- Проверь RLS-политики в моём проекте Supabase
- Протестируй RLS на таблице users
- Проверь политики RLS с этим токеном пользователя: eyJ...

## Похожие
- [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 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

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