Jelas sekali, PHP Mysql Apache ialah teknologi web yang sangat popular. Gabungan ini berkuasa, berskala dan percuma. Walau bagaimanapun, tetapan lalai PHP tidak begitu sesuai untuk tapak web yang sudah dalam talian. Mari kita perkukuhkan dasar keselamatan PHP dengan mengubah suai fail konfigurasi lalai!
0x01: Lumpuhkan fungsi pemprosesan fail url jauh
Fungsi pemprosesan fail seperti fopen menerima parameter rul fail (contohnya: fopen('http://www.yoursite.com','r')). Fungsi ini boleh mengakses sumber jauh dengan mudah. Walau bagaimanapun, ini adalah ancaman keselamatan yang sangat penting. Ia adalah pilihan yang baik untuk melumpuhkan ciri ini untuk mengehadkan fungsi fail. Buat perubahan berikut dalam fail php.ini:
0x02: Lumpuhkan pendaftaran pembolehubah global
Dalam versi sebelum 4.2.0, PHP menggunakan pembolehubah global sebagai input Fungsi ini dipanggil register_globals Ia menyebabkan banyak masalah keselamatan dalam aplikasi web kerana ia membolehkan penyerang memanipulasi pembolehubah global dengan mudah dalam beberapa situasi , untungnya ciri ini dilumpuhkan secara lalai dalam 4.2.0 Ia sangat berbahaya dan mesti dilumpuhkan dalam apa jua keadaan. Jika sesetengah skrip memerlukan fungsi ini, maka skrip tersebut mempunyai potensi ancaman keselamatan. Ubah suai pnp.ini untuk melumpuhkan ciri ini:
0x03: Hadkan operasi baca dan tulis PHP
Dalam banyak proses pembangunan web, skrip php perlu membaca dan menulis ke sistem fail setempat, seperti /var/www/htdocs/files Untuk meningkatkan keselamatan, anda boleh mengubah suai kebenaran baca dan tulis fail tempatan :
0x04: Had Posing
Menghadkan masa pelaksanaan PHP, penggunaan memori, pos dan muat naik data ialah strategi terbaik Anda boleh mengkonfigurasinya seperti berikut:
0x05: Lumpuhkan mesej ralat dan dayakan pengelogan
Dalam tetapan lalai, PHP akan mengeluarkan mesej ralat kepada penyemak imbas Semasa proses pembangunan aplikasi, tetapan lalai ini adalah konfigurasi yang paling munasabah Walau bagaimanapun, ia juga boleh membocorkan beberapa maklumat keselamatan kepada pengguna, seperti laluan pemasangan dan nama pengguna. Dalam laman web yang telah dibangunkan, adalah lebih baik untuk melumpuhkan mesej ralat dan mengeluarkan mesej ralat ke fail log.
0x06: Sembunyikan fail PHP
Jika tiada fail PHP tersembunyi, kita boleh mendapatkan versi PHP pelayan melalui pelbagai kaedah, seperti menggunakan: http://www.example.com/script.php?=PHPB8B5F2A0-3C92-11d3- A3A9- 4C7B08C10000
Jelas sekali, kami tidak mahu pengguna boleh mengakses versi PHP pelayan tapak web anda Nasib baik, terdapat suis dalam php.ini untuk melumpuhkan ciri ini:
0x07: Konfigurasi mod selamat
Secara lalai, PHP boleh dikonfigurasikan dalam mod selamat Dalam mod ini, Apache melarang akses kepada fail, pembolehubah persekitaran dan program binari, masalah terbesar ialah hanya pemilik fail yang boleh mengaksesnya ialah fail PHP. Jika terdapat ramai pembangun yang bekerjasama untuk membangunkan program ini, tetapan ini tidak praktikal Apabila anda perlu mengakses fail PHP, anda perlu mengubah suai pemilik fail tersebut . PHP, konfigurasi berikut boleh mengubah suai kebenaran fail kepada kumpulan pengguna dan bukannya pengguna tunggal.
Dengan mendayakan safe_mode_gid, kumpulan yang menggunakan Apache ini akan dapat mengakses fail PHP. Mod selamat juga sangat berkesan untuk menghalang perduaan daripada dilaksanakan, bagaimanapun, pembangun mungkin mahu dapat menjalankan beberapa perduaan dalam keadaan tertentu. Dalam kes khas ini, fail binari boleh diletakkan dalam direktori, seperti (/var/www/binaries), dan tetapan berikut boleh dibuat:
Akhir sekali, melalui tetapan berikut, anda boleh mengakses pembolehubah persekitaran pelayan, memberikan awalan yang dipisahkan dengan "_", supaya hanya pembolehubah persekitaran dengan awalan yang ditentukan boleh diakses:
0x08: Hadkan akses pengguna awam kepada fail dengan akhiran tertentu
Atas sebab keselamatan, banyak fail dengan nama akhiran tertentu tidak boleh diakses oleh pengguna awam, seperti fail dengan akhiran .inc, yang mengandungi beberapa maklumat sensitif, seperti maklumat sambungan mysql, maka jika tiada konfigurasi yang sesuai setiap Setiap pengguna boleh mengakses fail konfigurasi ini Untuk meningkatkan keselamatan tapak web, anda perlu mengkonfigurasi yang berikut dalam fail ..htaccess:
0x09: Ringkasan
Konfigurasi lalai PHP adalah untuk pembangun Jika tapak web adalah untuk sejumlah besar pengguna, adalah disyorkan untuk mengkonfigurasi semula PHP.