Menetapkan keizinan fail yang sesuai dalam Php 8
Menetapkan keizinan fail yang sesuai dalam Php 8 adalah penting untuk keselamatan dan fungsi aplikasi yang betul. Cara yang paling biasa untuk menguruskan keizinan fail adalah melalui fungsi chmod()
. Walau bagaimanapun, secara langsung menggunakan chmod()
dalam kod PHP anda harus didekati dengan berhati -hati. Sebaliknya, amalan terbaik untuk menetapkan keizinan di luar aplikasi PHP anda, idealnya semasa penempatan atau melalui konfigurasi pelayan anda. Ini menghalang kelemahan yang berpotensi jika pengguna yang berniat jahat mendapat akses kepada kod aplikasi anda.
Kebenaran yang ideal bergantung pada jenis fail dan tujuannya. Sebagai contoh:
- Fail yang boleh dilaksanakan (skrip): biasanya mempunyai set bit melaksanakan untuk pemilik (), dan berpotensi kumpulan (
u x
) jika berbilang pengguna perlu melaksanakannya. Elakkan menetapkan bit melaksanakan untuk orang lain (g x
) melainkan benar -benar diperlukan. Kebenaran umum ialah o x
(pemilik: membaca, menulis, melaksanakan; Kumpulan: baca, laksanakan; Lain -lain: baca, laksanakan). Orang lain hanya boleh membaca akses. Kebenaran umum ialah 755
(pemilik: baca, tulis; kumpulan: baca; yang lain: baca). Tetapan yang terlalu permisif boleh membenarkan pengubahsuaian atau penghapusan data yang tidak dibenarkan. Kebenaran umum ialah atau bahkan - (pemilik: baca, tulis; kumpulan: tidak ada yang lain: tidak ada) untuk data sensitif. Nombor -nombor ini mewakili keizinan untuk pemilik, kumpulan, dan lain -lain masing -masing.
- Prinsip keistimewaan paling tidak: hanya memberikan kebenaran minimum yang diperlukan untuk fail dan direktori. Elakkan memberikan akses tulis di mana baca sahaja cukup. Ini mengasingkan aplikasi web anda dari seluruh sistem, mengehadkan kerosakan dari kompromi yang berpotensi. Jangan menjalankan webserver anda sebagai root. Skrip automatik boleh membantu proses ini. Ini menghalang isu kebenaran yang tidak dijangka.
- Umask: dengan betul konfigurasikan tetapan
pada pelayan anda. - Menentukan kebenaran lalai untuk fail dan direktori yang baru dibuat. Nilai biasa dan selamat ialah (menghalang kumpulan dan lain -lain daripada menulis). Ini biasanya ditetapkan pada tahap sistem operasi, bukan dalam php. Kebenaran yang berubah secara dinamik berdasarkan input pengguna mewujudkan risiko keselamatan yang signifikan.
- Periksa log ralat: Periksa log ralat webserver anda (Apache's
error.log
, log ralat Nginx) untuk maklumat terperinci mengenai kesilapan yang berkaitan dengan kebenaran. Log ini sering menentukan fail khusus dan sifat masalah kebenaran. Ini secara langsung menunjukkan jika keizinan ditetapkan dengan betul. Gunakan (dalam konteks proses webserver) untuk mengesahkan pengguna semasa. Ini membantu menentukan sama ada masalah ini khusus untuk aplikasi anda atau masalah sistem yang lebih luas. Buat sementara waktu melumpuhkan mereka (untuk tujuan ujian sahaja) boleh membantu mengenal pasti jika mereka adalah punca. Kebenaran Permisif: - Memberi keizinan yang berlebihan meningkatkan permukaan serangan permohonan anda. Sentiasa mematuhi prinsip keistimewaan yang paling sedikit.
ls -l
Notasi oktal yang salah: menggunakan nilai oktal yang salah untuk - membawa kepada kebenaran yang tidak dijangka. Double-cek nilai anda dengan teliti.
whoami
Mengabaikan pengendalian ralat: Jangan mengabaikan kesilapan yang dikembalikan oleh fungsi sistem fail seperti - , , atau . Pengendalian ralat yang betul membantu mendiagnosis dan menangani masalah kebenaran. Ini adalah kelemahan keselamatan utama. Sentiasa gunakan pengguna yang berdedikasi dan tidak istimewa.
-
Kebenaran hardcoding dalam kod: Elakkan keizinan hardcoding secara langsung dalam kod anda. Ini menjadikannya sukar untuk mengurus dan mengemas kini keizinan secara berpusat. Gunakan fail konfigurasi sebaliknya.
Atas ialah kandungan terperinci Cara menetapkan kebenaran fail yang sesuai dalam php 8. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!