CSRF dan XSS: dua ancaman yang sering tertukar — Vibe Coding dan Security: Dari Prompt ke Aplikasi Aman

MATERI 14 DARI 28

CSRF dan XSS: dua ancaman yang sering tertukar

Pahami perbedaan request palsu lintas situs dan script tak dipercaya, serta mitigasinya.

Tujuan pembelajaran

  • Menggunakan token CSRF pada mutation.
  • Encode output dan sanitasi rich text.
  • Memahami peran SameSite dan CSP.

Konsep utama

CSRF

Browser korban membawa cookie sah ke request yang tidak diinginkan.

XSS

Data tidak dipercaya dieksekusi sebagai HTML/JavaScript dalam origin aplikasi.

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

Validasi token CSRF

if (!is_string($_POST['csrf'] ?? null) || !hash_equals($_SESSION['csrf'], $_POST['csrf'])) {
    http_response_code(419);
    exit('Sesi formulir kedaluwarsa');
}

Render teks dengan aman

const li = document.createElement("li");
li.textContent = comment.body;
document.querySelector("#comments").append(li);

Aspek keamanan

  • Mutation harus POST/PUT/DELETE dan memvalidasi CSRF.
  • Jangan menganggap CSP menggantikan encoding.
  • Sanitizer HTML harus allowlist tag/atribut dan diuji dengan payload hostile.

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

Pahami perbedaan request palsu lintas situs dan script tak dipercaya, serta mitigasinya.