Membaca diff dan mengendalikan scope perubahan AI — Vibe Coding dan Security: Dari Prompt ke Aplikasi Aman

MATERI 8 DARI 28

Membaca diff dan mengendalikan scope perubahan AI

Review diff untuk perubahan tidak diminta, authorization yang melemah, logging sensitif, dan penghapusan data.

Tujuan pembelajaran

  • Membaca diff per file.
  • Mengenali perubahan berisiko.
  • Menolak generated code yang tidak dapat dijelaskan.

Konsep utama

Review semantik

Diff kecil belum tentu aman; periksa perubahan authorization dan default.

Change budget

Batasi jumlah file/baris agar review tetap manusiawi.

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

Pemeriksaan diff sebelum commit

git diff --check
git diff --name-only
git diff -- app/ public/ resources/ tests/
# Cari pola berbahaya yang harus direview manual
git diff | grep -En "(chmod 777|verify_peer.?false|SELECT .*\$_|eval\()" || true

Aspek keamanan

  • Jangan mengandalkan grep sebagai pengganti review.
  • Periksa file konfigurasi, migration, dan route authorization.
  • Pastikan test baru tidak menghapus assertion penting.

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

Review diff untuk perubahan tidak diminta, authorization yang melemah, logging sensitif, dan penghapusan data.