FixVibe

// docs / security guides / claude code checklist

Checklist keamanan Claude Code: 26 item

Claude Code (agen CLI Anthropic) menghasilkan seluruh basis kode melalui perintah garis miring, mengelola pemfaktoran ulang multi-file, dan membaca file/writes melalui bash. Daftar periksa ini menargetkan risiko spesifik Claude Code: tidak ada kebijakan keamanan default, pembatasan tarif yang jarang ditambahkan, <code>.claude/CLAUDE.md</code> sebagai file pagar pembatas keamanan Anda, dan risiko melakukan <code>.env</code> atau token yang di-cache. 26 item di seluruh rahasia, database, autentikasi, header, penerapan, dan Claude Code - gotcha khusus.

PRE = pra-penerapan (audit sumber Anda). DEPLOY = pada waktu penerapan. POST = verifikasi pasca penerapan. Referensi item FixVibe periksa ID dalam formulir category.check-id jika relevan.

Rahasia dan kunci API (5 item)

Claude Code membaca seluruh pohon sumber dan mengeluarkan seluruh file. Rahasia dalam konteks Anda menjadi rahasia pada keluarannya.

  1. PRE โ€” Create .claude/CLAUDE.md with security policies. Tambahkan: "Security Rules: Jangan pernah memasukkan kunci service_role ke dalam bundel klien. Selalu merutekan operasi sensitif melalui titik akhir khusus server. Verifikasi bahwa NEXT_PUBLIC_* env vars hanya berisi nilai aman (tanpa kunci, tanpa token)." Claude Code dibaca .claude/CLAUDE.md untuk panduan proyek.
  2. PRE โ€” Ensure .env.local is in .gitignore. Claude Code mungkin secara tidak sengaja melakukan .env.local selama refactor. Jalankan git ls-files .env* untuk memeriksa apa yang dilacak. Jika .env.local ada, maka akan terekspos.
  3. PRE โ€” Audit generated API routes for env-var verification. Claude Code terkadang lupa memverifikasi bahwa process.env.SECRET ada di sisi server sebelum menggunakannya. Rute akan gagal dengan cepat jika env var tidak ada, bukan masuk ke default.
  4. PRE โ€” Check the .claude cache directory. Claude Code menyimpan konteks percakapan dalam .claude/cache atau .claude/history. File-file ini tidak boleh dikomit. Tambahkan .claude/ ke .gitignore.
  5. POST โ€” Run secrets.browser-storage on the deployed app. Jika Claude Code memasukkan kunci, pemindaian pasif akan menemukannya dalam bundel yang dirender.

Kontrol akses basis data (4 item)

Claude Code sangat baik dalam menghasilkan skema, tetapi kebijakan RLS memerlukan instruksi eksplisit.

  1. PRE โ€” Instruct Claude Code on RLS in .claude/CLAUDE.md. Tambahkan: "Setiap migrasi harus menyertakan ALTER TABLE ... ENABLE ROW LEVEL SECURITY dan FORCE ROW LEVEL SECURITY. Setiap kebijakan harus memvalidasi auth.uid() pengguna."
  2. PRE โ€” Review generated migrations for FORCE ROW LEVEL SECURITY. Claude Code dapat menghasilkan ENABLE tapi lupakan FORCE. Tanpa FORCE, pemilik tabel (pelari migrasi) melewati RLS. Tambahkan secara manual jika tidak ada.
  3. DEPLOY โ€” Test RLS enforcement after deploy. Buka Supabase Studio, pilih meja, konfirmasi RLS tombolnya adalah ON. Jika migrasi Claude Code menggunakan ENABLE tanpa FORCE, tombol alihnya akan bertuliskan ON namun penegakannya belum selesai.
  4. POST โ€” Run the baas.supabase-rls active check. Ia mencoba menulis dengan kunci segera. Jika berhasil, RLS belum lengkap. Tambahkan FORCE ke migrasi dan penerapan ulang.

Otentikasi dan sesi (4 item)

Claude Code menghasilkan aliran autentikasi dengan baik tetapi tidak secara otomatis menambahkan pembatasan laju atau memverifikasi semua klaim token di sisi server.

  1. PRE โ€” Mandate server-only auth verification in .claude/CLAUDE.md. Tambahkan: "Setiap API rute yang mengubah data harus memverifikasi pengguna dengan await supabase.auth.getUser() di server. Jangan pernah mempercayai getSession() atau pengguna ID dari badan permintaan."
  2. PRE โ€” Check generated auth handlers for token expiry. Tautan ajaib dan token penyetelan ulang kata sandi memerlukan expires_at yang didukung server. Tanya Claude Code: "Tambahkan cek yang menolak token yang lebih lama dari 1 jam."
  3. PRE โ€” Verify sign-in redirect guards. Pengalihan param next harus dimulai dengan / dan bukan //. Tambahkan ke .claude/CLAUDE.md: "Validasi parameter next: harus dimulai dengan /, tolak jika dimulai dengan // atau berisi protokol."
  4. POST โ€” Test logout clears cookies. Masuk, keluar, periksa Aplikasi โ†’ Cookie. Cookie sesi harus dihapus. Jika tetap ada, titik akhir logout tidak merusak status.

HTTP header dan CSP (3 item)

Claude Code tidak menghasilkan middleware secara default kecuali Anda memintanya.

  1. PRE โ€” Add middleware request to .claude/CLAUDE.md. Sertakan: "Buat src/middleware.ts dengan Content-Security-Policy menggunakan nonce per permintaan, HSTS, header X-Frame-Options, dan X-Content-Type-Options." Kemudian minta Claude Code untuk mengimplementasikannya.
  2. PRE โ€” Verify src/middleware.ts exists and has CSP. Dengan tata letak Next.js src/, middleware harus berada di src/middleware.ts, bukan root proyek. Pastikan header CSP menyertakan 'strict-dynamic' dan nonce.
  3. POST โ€” Run headers.security-headers on the deployed URL. Pemeriksaan ini melaporkan header yang hilang dan menyarankan perbaikan untuk platform Anda.

Kebersihan penempatan (4 item)

Claude Code tidak mengonfigurasi platform penerapan Anda โ€” itu adalah tanggung jawab Anda, namun patut untuk diperiksa.

  1. DEPLOY โ€” Scope env vars per environment in Vercel (or equivalent). Pengaturan โ†’ Variabel Lingkungan โ†’ tetapkan setiap rahasia hanya ke Production. Jangan pernah berbagi sk_live_* dengan Pratinjau atau Pengembangan.
  2. DEPLOY โ€” Audit your CI workflow for secret echo. Jika GitHub Tindakan atau CI lainnya memiliki echo $SECRET di mana saja, hapuslah. Log build diarsipkan; rahasia dalam log dikompromikan.
  3. DEPLOY โ€” Prefer platform-native secret storage. Vercel Pengaturan โ†’ Variabel Lingkungan dienkripsi; GitHub Rahasia tindakan lebih baik daripada tidak sama sekali, tetapi tidak cocok dengan penyimpanan asli platform.
  4. POST โ€” Rotate any key that reached a public build. Jika kunci muncul di Vercel Pratinjau URL atau artefak publik apa pun selama beberapa detik, maka kunci tersebut telah disusupi. Segera putar.

Claude Code - gotcha khusus (5 item)

Pola unik untuk arsitektur dan alur kerja Claude Code:

  1. Claude Code forks work into subagents. Pada tugas besar, Claude Code dapat memunculkan beberapa instance subagen, masing-masing dengan konteks basis kode parsial. Jika salah satu subagen berhalusinasi tentang pola rahasia yang tidak dimiliki subagen lainnya, maka timbullah ketidakkonsistenan. Tinjau perbedaan terakhir dengan cermat.
  2. Bash operations are unverified. Claude Code mengeksekusi perintah bash secara langsung. git commit -m "fix" memang nyaman, tetapi jika direktori kerja memiliki file .env dan sebuah glob menyertakannya, maka ia akan dikomit. Selalu tinjau git diff --cached sebelum Claude Code melakukan.
  3. Context window boundaries create gaps. Jika basis kode Anda besar, konteks Claude Code mungkin terbagi menjadi beberapa jendela. Penanganan .env.local di satu jendela mungkin berbeda dengan yang lain. Terapkan kebijakan di .claude/CLAUDE.md dan verifikasi hasilnya.
  4. Rate-limiting is almost never added without asking. Claude Code menghasilkan CRUD yang berfungsi tetapi jarang menyertakan header pembatas laju atau logika backoff eksponensial. Minta secara eksplisit di .claude/CLAUDE.md.
  5. .claude/CLAUDE.md is read but not enforced. Claude Code membaca .claude/CLAUDE.md Anda sebagai petunjuk, bukan kendala. Jika petunjuknya bertentangan dengan tugas, Claude Code dapat mengabaikannya. Selalu tinjau hasilnya.

Langkah selanjutnya

Periksa general vibe coding security checklist untuk 44 item lintas alat, lalu lihat step-by-step hardening untuk pola waktu penerapan. Jika Anda juga menggunakan Cursor, lihat Cursor security checklist.

// scan your app

Cukup membaca. Saatnya temukan celah di aplikasimu.

Kunjungi URL โ€” FixVibe menjalankan setiap pemeriksaan pasif dari panduan ini ditambah 200+ pemeriksaan lainnya dalam waktu kurang dari satu menit. Free, tanpa instalasi, tanpa kartu.

  • Free tingkat โ€” 3 pemindaian / bulan, tanpa kartu.
  • Pemindaian pasif terhadap URL apa pun โ€” tidak memerlukan verifikasi domain.
  • Disetel untuk Cursor, Claude Code, Lovable, Bolt, v0, Replit.
  • Coding-agent prompts for code/config findings, plus operator steps for DNS/provider fixes.
Checklist keamanan Claude Code: 26 item โ€” Docs ยท FixVibe