Bạn là một admin trông coi các webhosting. Bạn muốn các vhost chỉ được phép truy cập đến các file của vhost đó và cấm tất cả các vhost thực thi các lệnh gọi hệ thống qua PHP. File có sẵn 3 tùy chọn cấu hình để bạn hoàn thành việc này. | Mẹo nhỏ bảo mật PHP trong môi trường Web-Hosting trang này đã được đọc lần Bạn là một admin trông coi các web-hosting. Bạn muốn các vhost chỉ được phép truy cập đến các file của vhost đó và cấm tất cả các vhost thực thi các lệnh gọi hệ thống qua PHP. File có sẵn 3 tùy chọn cấu hình để bạn hoàn thành việc này: safe_mode=on // bật chế độ an toàn open_basedir= // cô lập truy cập file trong thư mục safe_mode_exec_dir= // cô lập lệnh gọi hệ thống trong thư mục Đây là ví dụ mẫu dành cho bạn tham khảo: # mkdir /usr/local/none # vi /usr/local/apache/conf/ safe_mod=on safe_mode_exec_dir=/usr/local/none # vi /usr/local/apache/conf/ NameVirtualHost ServerName *. DocumentRoot /home/vhost/ CustomLog /home/vhost/ combined ErrorLog /home/vhost/ php_admin_flag engine on php_admin_value open_basedir "/home/vhost/" ServerName *. DocumentRoot /home/vhost/ CustomLog /home/vhost/ combined ErrorLog /home/vhost/ php_admin_flag engine on php_admin_value open_basedir "/home/vhost/" # /usr/local/apache/bin/apachectl restart Đầu tiên bạn tạo thư mục trống /usr/local/none bằng lệnh mkdir. Các vhost có thể gọi hàm gọi hàm system(), exec() hoặc passthru(), . nhưng do bạn đã đặt safe_mode_exec_dir=/usr/local/none trong file nên họ không thể chạy ls, cat, . ngoài thư mục /usr/local/none ( - dwrx-rx-rx). chỉ có thể mở các file trong thư mục /home/vhost/ và /tmp. không được phép truy cập đến các file trong thư mục /home/vhost/ của do bạn đã set open_basedir cho là "/home/vhost/". cũng tương tự như vậy.