Review kode yang dihasilkan AI — Vibe Coding dan Security: Dari Prompt ke Aplikasi Aman

MATERI 19 DARI 28

Review kode yang dihasilkan AI

Gunakan checklist correctness, data flow, authorization, security, performance, dan maintainability.

Tujuan pembelajaran

  • Melakukan review per boundary.
  • Mencari asumsi tersembunyi.
  • Membedakan style issue dan security issue.

Konsep utama

Trace data flow

Ikuti input dari route hingga storage dan output.

Adversarial review

Tanyakan bagaimana pengguna tanpa permission, input besar, atau dependency gagal memengaruhi sistem.

Alur kerja teknis

  1. Tulis tujuan dan acceptance criteria.
  2. Buat perubahan kecil yang dapat ditinjau.
  3. Jalankan test dan baca diff sebelum menerima hasil AI.

Contoh implementasi

Contoh review authorization

// Buruk: hanya tombol disembunyikan di UI.
// Baik: route memeriksa permission sebelum repository dipanggil.
function deletePost(string $id, array $actor): void {
    if (!in_array('posts.delete', $actor['permissions'] ?? [], true)) {
        throw new RuntimeException('Forbidden');
    }
    // lanjutkan delete terkontrol
}

Aspek keamanan

  • Cari fallback yang fail-open.
  • Periksa apakah error path melewatkan cleanup.
  • Pastikan test menguji authorization, bukan hanya render tombol.

Kesalahan umum

  • Menerima kode AI tanpa membaca diff dan memahami alur data.
  • Menguji hanya happy path dan mengabaikan input salah atau batas nilai.
  • Menyimpan secret, token, atau data nyata di prompt dan source code.

Pengujian dan verifikasi

  1. Jalankan contoh dengan input normal.
  2. Ulangi dengan input kosong, tipe salah, dan nilai batas.
  3. Pastikan error tidak membocorkan secret atau detail internal.

Latihan

  1. Modifikasi contoh dengan satu kebutuhan baru dan tulis acceptance criteria-nya.
  2. Tambahkan satu negative test lalu jelaskan risiko yang dicegah.

Checklist

  • Tujuan dan batas pekerjaan jelas.
  • Input divalidasi di server.
  • Secret tidak berada di source/prompt.
  • Test lulus dan diff sudah dibaca.

Rangkuman

Gunakan checklist correctness, data flow, authorization, security, performance, dan maintainability.