在Linux系统下配置PHP安全设置,可以通过以下步骤进行:
更新PHP版本:确保你使用的是最新版本的PHP,因为新版本通常包含安全修复和改进。
配置PHP-FPM(如果使用PHP-FPM):
/etc/php-fpm.d/www.conf或/etc/php-fpm.conf。user和group设置为非root用户和组,以提高安全性。listen.owner和listen.group也设置为相同的非root用户和组。listen.mode设置为0660,以限制文件权限。配置PHP安全选项:编辑PHP的配置文件php.ini,通常位于/etc/php.ini。在php.ini文件中,进行以下安全设置:
display_errors = Offlog_errors = Onerror_log = /var/log/php_errors.logfile_uploads = Onupload_max_filesize = 2Mpost_max_size = 8Mmagic_quotes_gpc = Offhtml_errors = Offsession.cookie_httponly = Onsession.cookie_secure = Onsession.use_strict_mode = Onmemory_limit = 128Msudo php -m | grep -vE "^cli|common" | xargs sudo php -i | grep -vE "^extension"配置防火墙:使用firewalld或iptables配置防火墙规则,限制对PHP应用的访问。
firewalld: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证书来实现。
certbot为Nginx配置SSL证书:sudo yum install certbot python2-certbot-nginx
sudo certbot --nginx -d yourdomain.com
定期更新和维护:定期更新PHP和相关软件包,以确保安全漏洞得到修复。
sudo yum update php*
sudo apt update && sudo apt upgrade
其他安全措施:
php.ini中设置disable_functions,禁用可能被恶意利用的函数。php.ini中设置safe_mode = On,限制PHP脚本的执行权限。open_basedir:限制PHP脚本只能访问指定目录。