Sekitar bulan November tahun 2017, Github merilis sebuah fitur yang dinamakan Security Alert. Fitur ini berfungsi untuk memeriksa repositori proyek terhadap kemungkinan celah keamanan pada dependensi yang digunakan. Jika potensi celah keamanan terdeteksi, maka Github akan memberikan notifikasi seperti berikut.
Lalu, apa yang harus dilakukan jika salah satu atau beberapa repositori kita mendapat notifikasi tersebut? Tidak usah panik, kita cukup melakukan pembaruan terhadap dependensi proyek bersangkutan.
Berikut ini adalah contoh langkah-langkah melakukan pembaruan dependensi untuk proyek berbasis Javascript yang menggunakan npm sebagai package manager. Semua langkah-langkah ini dijalankan pada terminal atau command line.
1. Install npm-check-updates
npm-check-updates atau ncu
adalah alat kakas yang bisa digunakan untuk memeriksa update terbaru dari dependensi yang tercantum pada file package.json
.
Install dengan menjalankan npm instal -g npm-check-updates
. Disarankan untuk menginstall secara global (-g
), sehingga bisa langsung digunakan untuk semua proyek berbasis npm yang kita miliki.
2. Lakukan proses audit
Masuk ke dalam direktori proyek yang ingin diperbarui, lalu jalankan ncu
. Selanjutya akan tampil daftar dependensi yang memiliki update terbaru dari pembuatnya. Pembaruan itulah yang bisa jadi merupakan patch atau perbaikan atas celah keamanan di versi sebelumnya.
3. Perbarui package.json
Jalankan ncu -u
untuk melakukan audit sekaligus memperbarui file package.json
. Jika kita sudah cukup percaya diri bisa langsung menjalankan perintah ini tanpa melakukan langkah nomor 2.
4. Perbarui package-lock.json
File package-lock.json
penting untuk optimasi penggunaan npm
, selengkapnya bisa dibaca pada tautan ini. Untuk memperbarui file ini bisa dilakukan dengan menjalankan npm update
maupun melakukan penghapusan direktori node_modules
kemudian menjalankan ulang npm install
.
5. Periksa perubahan repositori
Jalankan git status
dan pastikan file package.json
dan package-lock.json
sudah berubah karena diperbarui.
6. Jalankan automated test bila tersedia
Jika proyek kita memiliki unit test, atau test lainnya, maka akan lebih baik jika test tersebut dijalankan untuk memastikan perubahan dependensi tidak menimbulkan kekacauan. Jika terjadi kekacauan, maka langkah tambahan yang perlu kita lakukan adalah memperbarui kode program agar sesuai dengan dependensi terbaru.
7. Update repositori Github
Lakukan commit
dan push
ke Github jika semua langkah-langkah di atas berhasil.
Tambahan
Untuk melakukan audit kita juga bisa menggunakan perintah npm outdated
. Perintah ini bisa digunakan langsung tanpa menginstall alat kakas tambahan. Namun, perintah ini hanya menampilkan daftar dependensi yang sudah usang dan kita harus mengubah isi file package.json
secara manual.
Sedangkan dengan ncu
kita bisa melakukan audit sekaligus memperbarui file tersebut.