Menutup Celah Keamanan Lama: Update jQuery 3.2.1 ke 3.4.0

Langkah Perbaikan

Perbaikannya sendiri cukup langsung:

  1. Mengidentifikasi repo dan file yang terdampak lewat GitHub Dependabot/Vulnerability Alerts API, dari puluhan repository yang saya kelola.
  2. Mengunduh build resmi jQuery 3.4.0 dari code.jquery.com, dengan varian slim yang sama seperti file lama (mengecualikan modul ajax dan effects) agar footprint dan API tetap konsisten.
  3. Mengganti file vendor lama jquery-3.2.1.slim.min.js menjadi jquery-3.4.0.slim.min.js, lalu melakukan verifikasi isi file lewat header komentar dan checksum sebelum di-commit.
  4. Commit dan push perubahan ke branch utama dengan pesan yang menjelaskan alasan perubahan, bukan sekadar “update file”.
git mv pesbuk/web/js/jquery-3.2.1.slim.min.js pesbuk/web/js/jquery-3.4.0.slim.min.js
git commit -m "Update jQuery from 3.2.1 to 3.4.0 to fix known security vulnerability"
git push origin master

Catatan Penting: Deteksi Tidak Selalu Instan

Satu hal menarik yang saya pelajari: setelah push, status alert di GitHub tidak langsung berubah menjadi “Fixed”. Untuk dependency yang dikelola lewat manifest seperti package.json atau lockfile, GitHub biasanya melakukan re-scan dependency graph secara (hampir) instan. Namun untuk file JavaScript yang di-vendor langsung tanpa manifest — seperti kasus ini — proses deteksi ulang berjalan asinkron di sisi GitHub dan bisa memakan waktu lebih lama sebelum status alert diperbarui secara otomatis.

Pelajaran yang Dibawa Pulang

  • Vendor file itu utang teknis. Menaruh library pihak ketiga langsung sebagai file statis tanpa package manager membuatnya mudah terlupakan dan tidak pernah ter-update.
  • Dependabot alert layak ditindaklanjuti, bukan sekadar badge yang diabaikan di halaman repo.
  • Verifikasi sebelum percaya status hijau. Status alert di GitHub bisa tertinggal dari kondisi sebenarnya di kode — periksa isi file secara langsung sebagai sumber kebenaran utama.
  • Untuk proyek jangka panjang, mempertimbangkan migrasi ke package manager (npm/yarn) untuk dependency front-end akan membuat proses update seperti ini jauh lebih mudah di masa depan.

Ditulis sebagai catatan dari proses maintenance rutin repository pribadi di GitHub. Semua proses security update menggunakan Claude Code termasuk artikel blog ini.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *