在CentOS上提高PHP應用的安全性需要采取多方面的措施。以下是一些關鍵的步驟:
sudo yum update
sudo yum install firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
sudo firewall-cmd --reload
open_basedir
限制文件訪問路徑,并設置合理的文件上傳大小限制。sudo vi /etc/php.ini
# display_errors = Off
# open_basedir = "/var/www/html:/tmp" (根據實際路徑調整)
# upload_max_filesize = 2M
# post_max_size = 8M
php-mcrypt
、 php-gd
、 php-mbstring
和 php-bcmath
,增強安全性及功能。sudo yum install php-mcrypt php-gd php-mbstring php-bcmath
sudo yum install mod_ssl
sudo systemctl restart httpd
# 配置 /etc/httpd/conf.d/ssl.conf (將SSL證書和密鑰文件配置到此文件中)
userdel adm userdel lp userdel sync userdel shutdown userdel halt userdel news userdel uucp userdel operator userdel games userdel gopher userdel ftps
sudo passwd -dl user1 user2 ... (替換user1, user2為需要修改密碼的用戶)
sudo sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin no/' /etc/ssh/sshd_config
mkdir -p /backup
rsync -avz --delete /var/www/html/ /backup/website_backup/
mysqldump -u[數據庫用戶名] -p[數據庫密碼][數據庫名] | gzip > /backup/website_backup.sql.gz
safe_mode
(已在較新PHP版本中移除,不推薦使用) 或禁用一些潛在危險的PHP函數,例如 exec()
、 shell_exec()
等。# safe_mode = On (不推薦)
disable_functions = exec,shell_exec,system,passthru,popen,proc_open (根據實際情況選擇禁用函數)
通過以上措施,可以顯著提高CentOS服務器上PHP應用的安全性。