~/VibeHandbook
PDF Gratis

Bab 18 · 07

Gerbang review keamanan

Inilah satu kebiasaan yang mengubah semua hal di atas dari sebuah kekhawatiran menjadi sebuah proses: sebelum kamu merilis, buat AI menyerang kodenya sendiri. Model yang menulis fitur itu biasanya bisa menemukan lubang di dalamnya — hanya saja ia tidak akan melakukannya kecuali kamu memintanya. Balikkan perannya dari pembangun menjadi penyerang:

You wrote this endpoint. Now act as an attacker trying to break it.
List every way a malicious user could:
  - read or modify data they shouldn't (authorization holes)
  - inject code via input (SQL injection, XSS, command injection)
  - abuse missing validation or rate limits
For each, show the exact request that exploits it, then the fix.
Don't reassure me — assume there IS a vulnerability and find it.

Baris terakhir itu penting: kalau dibiarkan netral, AI cenderung bilang "terlihat aman!" Diberi tahu untuk mengasumsikan ada sebuah cacat, ia benar-benar mencarinya. Padukan pass yang adversarial ini dengan sebuah daftar periksa pra-rilis singkat yang kamu jalankan pada apa pun yang menghadap pengguna:

  • Setiap mengecek otorisasi, bukan hanya bahwa pengguna sudah login
  • Semua query basis data adalah parameterized — tidak ada yang dibangun dari string
  • Input pengguna yang dirender ke halaman di-escape (tidak ada injeksi HTML mentah)
  • Tidak ada di kode klien, dan tidak ada yang ter-commit ke repo
  • .env di-gitignore; kunci mana pun yang pernah bocor sudah dirotasi
  • Unggahan berkas memvalidasi tipe dan ukuran serta memakai nama yang dihasilkan
  • Dependensi baru sudah diperiksa keberadaan nyata dan reputasinya

Bayangkan gerbang ini sebagai sebuah urutan yang tidak dilewati apa pun tanpa lolos. AI berganti peran dari pembangun menjadi penyerang, lalu pemindaian otomatis menopang apa yang mungkin terlewat oleh pass manusia:

  feature code
       │
       ▼
 ┌──────────────────┐   "assume there IS a bug, find it"
 │ ADVERSARIAL PASS │   authz holes · injection · validation
 │ (AI as attacker) │
 └────────┬─────────┘
          │ issues found? ── yes ──▶ fix ──┐
          │ no                             │
          ▼                                │
 ┌──────────────────┐ ◀─────────────────── ┘
 │ AUTOMATED GATES  │   secret scan (gitleaks) · npm audit
 │ (CI, every push) │   parameterized? · secrets out of client?
 └────────┬─────────┘
          │ all green
          ▼
        SHIP ✓     ── anything red blocks the push ──

Dan jalankan sebuah pemindai secret (secret scanner) sebelum kamu push — sebuah alat seperti gitleaks (atau pemindaian bawaan platform kamu) menyisir kode dan riwayat kamu untuk hal-hal berbentuk seperti kunci. Ini adalah jaring pengaman satu perintah untuk kesalahan paling mahal dalam daftar, dan kamu bisa meminta AI menghubungkannya ke (Continuous Integration — robot yang otomatis menjalankan pemeriksaan kamu setiap kali kamu push kode) sehingga ia berjalan pada setiap push.

Mau versi offline?

Unduh seluruh buku sebagai PDF atau EPUB — gratis.