Open yaza-putu opened 8 months ago
Bantu jawab,
jika memang dirasa CVE nya serius (karena ada tingkatannya, seberapa berbahanya sebuah CVE, biasanya ada skornya) dan memang banyak saran dari komunitas untuk melakukan upgrade (jika skor CVE tinggi dan memang berbahanya), baiknya ya memang rewrite, entah rewrite ke versi laravel terbaru, atau rewrite ke stack/bahasa lain. Atau syukur2 CVE tersebut bisa di akali dengan teknik tertentu tanpa harus rewrite, tergantung CVE nya
Kita bahas keduanya :
Rewrite ke laravel terbaru secara umum, asal tidak menggunakan library aneh2 (yang hanya support ke versi laravel tertentu), biasanya proses rewrite lebih mudah, karena secara bahasa dan frameworknya relatif sama (walaupun kadang laravel suka big changes di tiap versi mayor, minor aja kadang sering 👎 ). Kalau memang menggunakan library aneh2, sebaiknya di versi aplikasi "terbaru" hasil rewrite ini hindari penggunaan library2 tersebut, agar di kemudian hari jika terulang, proses rewriting tidak menyulitkan. Pengalaman saya, asalkan tidak menggunakan library aneh2, proses rewrite laravel tidak terlalu sulit, yang bikin sulit migrasi biasanya karena kita menggunakan library aneh2 dan ketergantungan sama library tersebut.
Rewrite ke bahasa lain secara umum, lebih effort karena harus menyesuaikan dengan bahasa yang ada, dan kalau bisa tanpa merubah struktur database yang sudah berjalan. Apalagi jika menggunakan library tertentu yang hanya ada di laravel. Kendala lain, jika menggunakan bahasa lain yang berbeda karakter. Dimana laravel/PHP termasuk scripting, semisal kita mau rewrite ke Golang itu bahasa compiling. Harus benar-benar mengerti, contoh di golang, harus bener-bener handling errornya secara tepat, kalau enggak, bakalan langsung down/mati aplikasinya, bisa pake teknik recoverer dan handling error yang baik untuk menghindari aplikasi langsung down/mati. Belum lagi di golang ada konsep dilarang melakukan circular dependency, bagi programmer yang ngasal codingnya bakalan berasa. Intinya sih, di GoLang agak "dipaksa" untuk ngoding secara benar (variable harus di pake, strict typing, no circular dependency, dll). Kemudahan-kemudahan ala PHP cenderung tidak didapatkan di GoLang. Konsekuensinya biasanya di waktu
Nah, jika ternyata memang harus rewrite, apapun pilihannya, bisa dilakukan secara terpisah dari coding lama, jadi aplikasi yang berjalan sekarang, tetap berjalan, sambil secara parallel lakukan rewrite, kalau bisa untuk di awal hindari perubahan struktur data di aplikasi yang rewrite untuk menghindari tambahan waktu saat melakukan migrasi dan bisa smooth migration, kecuali jika memang sudah siap dengan konsekuensinya dan memang ingin optimasi hal tertentu.
Bang saya ada problem di production, saya memakai laravel framework versi 8, ketika saya cek itu ada CVE (security issue)
nah saya dilema kalau saya update maka library pasti ada yg tidak kompatible jadi harus update library dan mungkin juga akan muncul bug bug lagi, belum lagi dari sisi code yang harus sesuai dengan kaedah versi frameworknya ya syukur kalau sudah sesuai kalau tidak..
kalau saya diamkan saya tidak tahu apakah ini akan jadi masalah keamanan di masa depan
sempat saya berpikir ganti stack ke golang yg tanpa framework, tapi saya belum tahu apakah ini akan jadi langkah yg baik untuk kedepannya ketika ada masalah seperti diatas...
mohon bantuan bang eko apa ada solusi alternatifnya...