Skip to content
Agentmart
Submit a tool

authz-test

Builds the attacker-perspective authorization test matrix (IDOR, broken object-level authorization, tenant leakage, Supabase RLS bypass) that ordinary unit…

Skill by yutronax

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/yutronax-authz-test

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Builds the attacker-perspective authorization test matrix (IDOR, broken object-level authorization, tenant leakage, Supabase RLS bypass) that ordinary unit tests never cover, and verifies it against the real running system. Use when a task touches per-user or per-tenant data, any endpoint with an id in the path/query, or a Supabase table with RLS. Specifies tests for `test-copilot` to author and runs live probes itself; never writes implementation code.

Use cases: testing, data, productivity

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/authz-test

What's inside

Skill name
authz-test
Description
Builds the attacker-perspective authorization test matrix (IDOR, broken object-level authorization, tenant leakage, Supabase RLS bypass) that ordinary unit tests never cover, and verifies it against the real running system. Use when a task touches per-user or per-tenant data, any endpoint with an id in the path/query, or a Supabase table with RLS. Specifies tests for `test-copilot` to author and runs live probes itself; never writes implementation code.
License
MIT
Instructions
80 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# authz-test — "başkasının verisini çekebiliyor muyum?" katmanı

## Kullanılacak destek skiller
- `caveman`, `ponytail` (full) — her zaman aktif.
- `supabase-check` — Supabase tablosu varsa migration/gerçek-istek doğrulaması onda.

## Neden var
Test piramidinde bu katman yoktu. Mevcut testler hep **doğru kullanıcının doğru
veriye eriştiğini** doğruluyor. Gerçek dünyada en sık açık bunun tersi:
**yanlış kullanıcının doğru veriye erişmesi** — IDOR / broken object-level
authorization. OWASP API Top 10'un bir numarası budur ve mock'lu birim testler
onu yapısal olarak göremez, çünkü mock zaten "izin var" der.

`supabase-check` bunun yarısını kapatıyordu: migration uygulandı mı, gerçek
istek çalışıyor mu. Ama "anon key ile başkasının satırını çekebiliyor muyum"
**saldırgan testini** atmıyordu. Bu skill onu ekler.

## Ne zaman çalışır
`threat-model` bir `AC-S` yetkilendirme kriteri ürettiyse, ya da değişiklik
şunlardan birine dokunuyorsa: yol/sorguda id taşıyan uç (`/users/{id}`),
kullanıcıya veya kiracıya ait tablo, rol/izin kontrolü, paylaşım-davet akışı,
RLS politikası.

## Test matrisi — her korunan kaynak için

En az iki **farklı** aktör gerekir. Tek kullanıcıyla yetkilendirme test edilemez.

| # | Aktör | Beklenen |
|---|---|---|
| 1 | Sahibi (A) | 200 + kendi verisi |
| 2 | **Başka kullanıcı (B)** | 403 veya 404 — gövdede A'nın **hiçbir alanı** olmamalı |
| 3 | Kimliksiz / anon key | 401/403 — boş liste değil |
| 4 | Süresi geçmiş / bozuk token | 401 |
| 5 | Rol yükseltme denemesi (istekte `role: admin`) | yok sayılır, sunucu kendi kaydına bakar |
| 6 | Başkasının id'siyle yazma/silme | 403/404 **ve** veri değişmemiş olmalı |

### İki kural
- **Boş liste geçmek değildir.** RLS'te en tehlikeli sonuç `200 + []`'dir:
  test "veri sızmadı" diye geçer, oysa sorgu yetkisizdi ve sessizce filtrelendi
  — politika değişince sızmaya başlar. Yetkisiz erişim **hata** dönmeli.
- **Yazma testinde son durumu doğrula.** `403` dönüp kaydı yine de değiştiren
  uçlar olur. Cevap kodu yetmez; kaydı tekrar oku.

## Nasıl yürütülür

1. **Testleri sen yazma.** Yukarıdaki matrisi `test-copilot`'a
   `extra_instructions` olarak ver — boru hattının kuralı: test dosyalarını
   yalnızca `test-copilot` yazar. Her satırı `AC-S<n>`'e bağla.

2. **Mock'a izin verme.** Yetkilendirme testi mock'lanırsa hiçbir şey
   kanıtlamaz. Bu testler gerçek istemciye/DB'ye gitmeli (test projesi, test
   kullanıcıları). Mock'lu bir authz testi gördüğünde FAIL raporla.

3. **Canlı sonda (senin işin).** İki gerçek test hesabı varsa, matrisin
   2. ve 3. satırını gerçek istekle kendin doğrula ve çıktıyı rapora koy.
   Bu doğrulamadır, kod yazımı değil — izin verilen iş.

> Canlı sonda gerçek bir sisteme istek atar. Yalnızca **kullanıcının kendi
> test/geliştirme ortamında** ve kullanıcı bu görevi onayladıysa çalıştır.
> Üretim ortamına, ya da kullanıcının sahibi olmadığı bir sisteme asla.

## Supabase'e özel
- RLS **açık mı** kontrol et: politikası olmayan tabloda RLS kapalıysa anon key
  her satırı okur. Tablo bazında doğrula.
- `service_role` anahtarı istemci tarafı koda **hiç** girmemeli —
  `security-scan`'in sızıntı gate'i bunu ayrıca arar.
- `anon` key ile 2. ve 3. satır sondasını gerçekten at: `200 + []` gördüysen
  bunu PASS sayma, politika filtreliyor mu yoksa veri mi yok ayırt et.

## Raporlama
`obss_project/artifacts/<task-slug>/authz_test.md`: matris tablosu, her satır
için PASS/FAIL/N-A + kanıt (durum kodu, gövde özeti), mock'lanan test varsa
ayrıca işaretle. Kapsanmayan satır varsa **eksik** de, "uygulanmadı" deme.

## Yapmayacakların
- Uygulama kodu veya test dosyası yazmaz (`code-copilot` / `test-copilot`).
- Bulduğu açığı kendi başına düzeltmez — raporlar.
- Üretim ortamına sonda atmaz.

From yutronax/atdd-pipeline-skills, MIT.

More from yutronax/atdd-pipeline-skills

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Sep 21, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from yutronax

Cite this page

authz-test skill. Agent Mart. https://agentmart.dev/skills/yutronax-authz-test (last updated 2026-10-24)