Video: Belajar PHP untuk PEMULA | 11. PHP & MySQL 2025
Jika aplikasi anda berjalan pada Apache (lebih daripada separuh laman web di Internet lakukan), anda mungkin mahu mempertimbangkan untuk membolehkan SuExec dalam konfigurasi Apache anda. SuExec adalah satu mekanisme yang digabungkan dengan Apache yang menyebabkan skrip dijalankan sebagai pengguna yang memiliki skrip, daripada menjalankannya sebagai pengguna pelayan web.
Dalam persekitaran bukan SuExec, semua skrip dijalankan sebagai ID pengguna yang sama dengan pelayan web itu sendiri. Malangnya, satu skrip terdedah boleh memberikan akses pintu masuk pengguna yang berniat jahat ke seluruh pelayan web, termasuk skrip yang dijalankan di tapak lain yang dihoskan pada pelayan yang sama.
SuExec cuba untuk mengurangkan masalah ini dengan menyekat aplikasi web ke kawasan mereka sendiri dan menjalankannya di bawah ID pengguna pemiliknya, bukan di bawah ID pengguna pelayan web. Sebagai contoh, skrip ini akan berjalan di bawah ID pengguna jsmith:
/ home / ~ jsmith / public_html / skrip / please_hack_me. php
Pengguna yang berniat jahat boleh mengeksploitasi skrip ini, tetapi dia hanya akan mempunyai akses kepada fail dan program yang dibenarkan oleh pengguna jsmith. Setiap pengguna lain di pelayan akan dilindungi daripada skrip tidak selamat jsmith.
Malangnya, mendapatkan SuExec berfungsi dengan baik dengan tuan rumah maya, atau beberapa laman web bebas yang secara fizikal terletak pada pelayan web yang sama, boleh menjadi rumit. SuExec direka untuk menjalankan skrip yang wujud dalam akar dokumen pelayan web.
Kebanyakan hos maya disediakan dengan cara yang memberi setiap laman web setiap akar dokumennya sendiri, dan setiap akar dokumen tapak tidak terletak di bawah akar dokumen pelayan web. Untuk mengatasi sekatan ini, pentadbir sistem mesti menambah setiap akar dokumen hos maya ke pembolehubah akar dokumen pelayan web dalam fail konfigurasi Apache.
SuExec juga memerlukan skrip PHP dijalankan sebagai Common Gateway Interface (CGI), yang lebih perlahan daripada menjalankan PHP sebagai modul diolah di bawah Apache. CGI adalah model pertama yang boleh digunakan untuk aplikasi web, dan ia masih digunakan untuk skrip mudah. Walau bagaimanapun, sebaik sahaja anda meninggalkan skrip PHP PHP dan mula menulis aplikasi penuh, anda perlu meningkatkan prestasi PHP yang dikompilasi.
Untuk pelayan web yang agak mudah, SuExec boleh menyimpan satu aplikasi yang tidak selamat daripada menginjak segala yang lain. Walau bagaimanapun, dalam persekitaran yang lebih kompleks dengan pelayan maya, modul yang dirompak, dan berpuluh-puluh atau beratus-ratus pengguna, anda memerlukan model keselamatan yang sedikit lebih mantap.
