在CentOS上配置PHP安全策略,可以通過以下步驟來實現:
更新系統和PHP: 確保你的系統和PHP都是最新的,以避免已知的安全漏洞。
sudo yum update -y
sudo yum install -y epel-release
sudo yum install -y php php-cli php-fpm php-mysqlnd php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath
配置PHP-FPM:
如果你使用的是PHP-FPM,確保其配置文件/etc/php-fpm.d/www.conf
中的用戶和組設置為非root用戶,以提高安全性。
user = apache
group = apache
配置PHP安全選項:
編輯PHP配置文件/etc/php.ini
,設置以下安全選項:
; 啟用錯誤報告
display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log
; 禁用危險函數
disable_functions = eval,exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
; 啟用數據執行保護 (DEP)
zend.enable_gc = On
; 啟用OPcache
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
; 啟用安全模式
safe_mode = On
safe_mode_gid = Off
open_basedir = /var/www/html/:/tmp/
; 啟用輸入驗證
allow_url_fopen = Off
allow_url_include = Off
; 啟用文件上傳安全
file_uploads = On
upload_max_filesize = 2M
post_max_size = 8M
配置防火墻:
使用firewalld
或iptables
配置防火墻,限制對PHP應用的訪問。
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
使用HTTPS: 確保你的網站使用HTTPS,可以通過配置SSL證書來實現。
sudo yum install -y mod_ssl openssl
sudo systemctl enable httpd
sudo systemctl start httpd
定期更新和備份: 定期更新你的系統和PHP,以及備份重要數據。
使用安全模塊:
考慮使用安全模塊如mod_security
來增強PHP應用的安全性。
sudo yum install -y mod_security
sudo systemctl enable mod_security
sudo systemctl start mod_security
通過以上步驟,你可以顯著提高CentOS上PHP應用的安全性。記得定期檢查和更新你的配置,以應對新的安全威脅。