Platform Edukasi & Penetration Testing Keamanan Database Supabase
Uji kekuatan Row Level Security (RLS) Anda sebelum penyerang yang melakukannya.
SupaShield adalah platform berbasis web yang membantu developer menguji dan memahami kerentanan keamanan pada database Supabase. Dengan antarmuka bergaya Neon Brutalist (cyber-terminal), pengguna dapat melakukan simulasi serangan langsung terhadap API PostgREST untuk memverifikasi apakah kebijakan Row Level Security (RLS) mereka bekerja dengan benar.
β οΈ Disclaimer: SupaShield dibuat untuk tujuan edukasi dan pengujian keamanan pada lingkungan development/staging milik sendiri. Jangan gunakan alat ini pada sistem yang bukan milik Anda.
- Injeksi URL langsung β Paste satu URL penuh Supabase REST API beserta semua query filter
- Semua metode HTTP β GET, POST, PUT, PATCH, DELETE
- Payload Builder ganda β Mode Key-Value atau Raw JSON Editor dengan validasi realtime, prettify, dan minify
- CORS Bypass β Request diproxy melalui backend Next.js server-side, melewati pembatasan browser
- Analisis Forensik otomatis β Verdict keamanan instan (Rentan / Aman / Benteng Aktif)
- Anatomi serangan pada database Supabase
- Panduan kerentanan umum: RLS tidak aktif, IDOR, SECURITY DEFINER, eskalasi privilege
- Seluruh konten dalam Bahasa Indonesia
6 skenario kerentanan umum berdasarkan riset keamanan PostgREST:
| Template | Metode | Severity |
|---|---|---|
| Dump Seluruh Tabel Users | GET |
π΄ Tinggi |
| Eskalasi Privilege (is_admin) | PATCH |
π΄ Kritis |
| Baca Data Pengguna Lain (IDOR) | GET |
π΄ Tinggi |
| Panggil RPC Tanpa Auth | POST |
π΄ Kritis |
| Hapus Baris Anonim | DELETE |
π΄ Kritis |
| Sisipkan Data Palsu | POST |
π‘ Sedang |
| Layer | Teknologi |
|---|---|
| Framework | Next.js 16 (App Router, TypeScript) |
| Styling | Tailwind CSS v4 (@theme syntax) |
| Database | Supabase (Postgres + RLS) |
| Font | Space Grotesk, JetBrains Mono |
| Desain | Neon Brutalist (0px radius, cyber-terminal aesthetic) |
- Node.js β₯ 18.x
- npm atau pnpm
- Akun Supabase (untuk testing)
git clone https://github.com/ddettaa/SupaShield.git
cd SupaShieldnpm installBuat file .env.local di root proyek:
# URL proyek Supabase Anda (untuk fitur internal, opsional)
NEXT_PUBLIC_SUPABASE_URL=https://YOUR-PROJECT.supabase.co
# Anon Key proyek Supabase Anda (untuk fitur internal, opsional)
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOi...Catatan: Variabel
.env.localdi atas hanya diperlukan jika Anda ingin mengintegrasikan fitur internal SupaShield (seperti menyimpan log scan). Untuk menggunakan konsol penetrasi, Anda memasukkan URL & Key target langsung di halaman Tool.
Jalankan migrasi SQL di dashboard Supabase Anda:
# File: supabase/migrations/00000000000000_initial_schema.sql
# Salin dan jalankan isi file ini di Supabase SQL Editornpm run devBuka http://localhost:3000 di browser.
SupaShield/
βββ app/
β βββ api/
β β βββ scan/
β β βββ route.ts # Backend proxy (bypass CORS)
β βββ education/
β β βββ page.tsx # Halaman edukasi keamanan
β βββ security-guide/
β β βββ page.tsx # Panduan protokol keamanan
β βββ tool/
β β βββ page.tsx # Konsol penetrasi utama
β βββ globals.css # Design tokens & custom utilities
β βββ layout.tsx # Root layout (fonts, navbar, footer)
β βββ page.tsx # Landing page
βββ components/
β βββ Navbar.tsx # Navigasi global (desktop + mobile)
β βββ Footer.tsx # Footer
βββ supabase/
β βββ migrations/
β βββ 00000000000000_initial_schema.sql # Skema database + RLS
βββ package.json
βββ tailwind.config.ts
βββ tsconfig.json
βββ .env.local # Variabel environment (tidak di-commit)
Skema database SupaShield mengimplementasikan RLS (Row Level Security) ketat pada 3 tabel:
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
β profiles β β leaderboards β β scan_logs β
ββββββββββββββββ€ ββββββββββββββββ€ ββββββββββββββββ€
β RLS: ON β β RLS: ON β β RLS: ON β
β SELECT: All β β SELECT: All β β SELECT: Own β
β INSERT: Own β β INSERT: Own β β INSERT: Own β
β UPDATE: Own β β UPDATE: Own β β UPDATE: None β
β DELETE: None β β DELETE: None β β DELETE: None β
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
- profiles β Data profil publik, hanya bisa diubah oleh pemilik
- leaderboards β Skor publik dengan constraint max 100.000
- scan_logs β Log hasil scan bersifat privat dan immutable (tidak bisa diubah/dihapus)
SupaShield menggunakan estetika Neon Brutalist yang terinspirasi dari antarmuka terminal retro:
- Warna: Hijau neon (
#00ff41), cyan (#00d2fd), merah (#ff7351) di atas latar hitam pekat - Tipografi:
Space Grotesk(heading) +JetBrains Mono(code/terminal) - Border Radius:
0pxdi semua elemen (brutalist) - Efek: Scanline overlay, glitch text hover, animasi pulse/bounce
- Landing page & navigasi responsif
- Modul edukasi keamanan
- Konsol penetrasi dengan proxy bypass CORS
- Template injeksi cepat (6 skenario)
- Raw JSON payload editor
- Integrasi payment gateway (Midtrans/Xendit)
- Edge Functions testing
- Export laporan scan ke PDF
- Autentikasi pengguna & riwayat scan
- Leaderboard komunitas
Proyek ini dibuat untuk tujuan edukasi. Gunakan secara bertanggung jawab.
Dibangun dengan β dan kecintaan terhadap keamanan siber
SupaShield β Karena keamanan database bukan opsional.