Bagaimana seorang paranoid sysadmin percaya diri tetap up-to-date dengan versi PHP stabil terbaru? (perbaikan keamanan telah datang cukup teratur).
Ini adalah server Produksi, jadi "memecahkan barang" membuat orangku ketakutan sampai mati. Downtime untuk pemeliharaan bukan masalah.
Secara khusus, kami menjalankan Suse Enterprise Linux baru-baru ini, tetapi jawaban umum atau yang lebih umum sangat dapat diterima.
Bagaimana Anda menangani pembaruan keamanan untuk mesin produksi? Apa yang kita begitu tidak tahu bahwa orang ini sangat takut untuk hanya menggunakan manajer paket untuk "memperbarui"?
Ada saran?
Jawaban:
Saya menangani PHP dengan cara yang sama dengan saya menangani yang lain: Tingkatkan lingkungan pengembangan (klon produksi VMWare) pertama, uji regresi, lalu promosikan ke produksi menggunakan templat penyebaran yang sama yang kami gunakan untuk host VMWare. (Jika Anda menggunakan manajer paket untuk melakukan peningkatan, Anda akan menggunakan paket yang sama).
Sebagai lapisan tambahan insulasi, lingkungan produksi kami terdiri dari host-host redundan berpasangan, dan satu host dikeluarkan dari rotasi produksi untuk peningkatannya, kemudian diuji secara menyeluruh sebelum kami beralih ke host tersebut untuk meningkatkan mitranya.
Sebagai aturan umum, pembaruan keamanan diterapkan secepat mungkin, dan pembaruan bugfix non-keamanan / non-kritis diterapkan setiap triwulan untuk meminimalkan waktu henti.
sumber
PHP ada di daftar teratas saya untuk terus diperbarui ke versi saat ini. Saya kurang percaya pada kebanyakan hal.
Pada akhirnya, taruhan terbaik Anda adalah meninjau setiap changelog dari versi Anda saat ini ke yang terbaru dan secara nyata menimbang risiko.
Jika Anda berbicara tentang peningkatan versi minor, seperti 5.3.1 ke 5.3.2, saya tidak akan terlalu khawatir.
Jika Anda meningkatkan dari 5.2.x ke 5.3.x, Anda mungkin akan memperkenalkan beberapa masalah kompatibilitas.
Jika Anda menggunakan paket sistem, biasanya distribusi tidak akan memperkenalkan pemutakhiran yang akan merusak kinerja yang ada. RHEL dan CentOS menambal versi lama untuk perbaikan sampai rilis distribusi utama keluar. Lakukan pengujian untuk Anda, biasanya, yang mengurangi risiko. Saya berharap perusahaan SuSE serupa.
Untuk jalur peningkatan, taruhan terbaik adalah membangun server uji dan menguji aplikasi terhadap versi terbaru sebelum meningkatkan produksi.
sumber
Jawaban lain yang kurang dihargai adalah membuat daftar putih url dan fitur yang diizinkan. Di Apache Anda dapat melakukan ini dengan menggabungkan fitur proxy dan penulisan ulang.
Pada dasarnya, Anda membuat dua instalasi, satu yang memiliki konfigurasi stripped down: Proxy, menulis ulang, dan tidak ada eksekusi kode; dll. Setiap URL yang "diizinkan" (dengan parameter, dll) akan diproksi untuk pemasangan kedua.
Kemudian, tambahkan diri Anda ke daftar pengembang PHP, dan pantau catatan rilis dengan hati-hati. Setiap kali Anda melihat sesuatu yang terlihat seperti kerentanan keamanan, Anda membangun shim di instalasi pertama untuk mendeteksi kegagalan semacam ini, dan mengirim kesalahan kepada pengguna.
Dalam pengaturan seperti ini, Anda akan ingin mengarahkan POST ke filter (jika Anda membutuhkan POST sama sekali; beberapa situs mendapatkan apa-apa dengan mengizinkan POST hanya dari beberapa alamat IP!) Yang dapat mencari sumber yang diizinkan, dan memvalidasi semuanya.
Daftar putih semacam itu sangat memakan waktu untuk diatur, tetapi untuk aplikasi misi kritis yang harus berjalan lebih lama dari umur PHP yang stabil (yang tampaknya hanya beberapa tahun), ini bisa menjadi cara terbaik untuk memanfaatkan sejumlah besar PHP aplikasi tanpa mendapatkan kerentanannya juga.
sumber
Selain hal di atas, Anda dapat mengaktifkan paket roll back untuk berjaga-jaga.
Kemudian jika ada sesuatu yang rusak pada produksi yang Anda benar - benar yakin bekerja dengan baik pada pengembangan , Anda setidaknya dapat membatalkan perubahan dengan cepat sebelum memecahkan masalah.
Lihat paket Rollback YUM untuk contoh dalam Yum. Saya yakin sistem manajemen paket lainnya memiliki kesamaan.
Saya tahu itu adalah sabuk dan kawat gigi dan saya setuju dengan Warner dengan rilis poin. Perubahan kecil seharusnya tidak merusak apa pun. Secara pribadi saya tidak memiliki masalah dalam upgrade PHP, tetapi selalu lebih baik aman daripada menyesal.
sumber