CentOS环境下PHP安全配置的核心要点
sudo yum update命令,更新CentOS系统内核、PHP及所有关联软件包,及时修复已知安全漏洞,避免攻击者利用旧版本漏洞入侵。firewalld工具限制服务器网络访问,仅开放必要端口(如HTTP的80端口、HTTPS的443端口),禁止未授权IP访问PHP服务。例如:sudo firewall-cmd --permanent --zone=public --add-service=http && sudo firewall-cmd --permanent --zone=public --add-service=https && sudo firewall-cmd --reload。/etc/ssh/sshd_config中的PermitRootLogin no),强制使用强密码策略,降低SSH暴力破解风险。php.ini中通过disable_functions指令禁用高危函数,防止攻击者通过这些函数执行系统命令、读取敏感文件。常见需禁用的函数包括:eval、exec、shell_exec、passthru、system、popen、curl_exec、proc_open等。display_errors = Off),避免泄露数据库结构、路径等敏感信息;开启错误日志记录(log_errors = On),并将日志存储在非Web可访问目录(如/var/log/php_errors.log),便于后续排查问题。upload_max_filesize = 2M、post_max_size = 8M)和数量(max_file_uploads = 5),防止攻击者通过大文件上传消耗服务器资源或上传恶意脚本;同时,建议将上传目录设置为不可执行脚本(如chmod 755 /var/www/html/uploads)。session.cookie_httponly = On(防止JavaScript访问会话Cookie,降低XSS攻击风险)、session.cookie_secure = On(仅通过HTTPS传输会话Cookie,防止中间人攻击)、session.cookie_samesite = Strict(限制会话Cookie仅在同站点请求中发送,防止CSRF攻击)、session.use_strict_mode = On(防止会话固定攻击)。allow_url_fopen和allow_url_include(防止远程文件包含攻击)、设置memory_limit(如128M,限制脚本内存使用,防止内存耗尽攻击)、expose_php = Off(隐藏PHP版本信息,减少针对性攻击)。/etc/php-fpm.d/www.conf文件,将user和group设置为非root用户(如apache或nginx),避免PHP进程以root权限运行,降低权限提升风险。listen.owner和listen.group为非root用户,且listen.mode = 0660,限制socket文件的访问权限。security.limit_extensions指令限制PHP-FPM仅处理指定扩展的文件(如.php、.php3、.phtml),防止攻击者上传其他扩展名的恶意脚本。/etc/httpd/conf/httpd.conf)中,限制目录访问权限(Options -Indexes +FollowSymLinks,禁止目录遍历)、禁用目录索引(防止敏感文件泄露)、允许.htaccess覆盖(AllowOverride All,用于自定义安全规则)。/etc/nginx/nginx.conf)中,正确配置PHP处理块(location ~ \.php$),使用fastcgi_pass指向PHP-FPM的socket文件,设置fastcgi_param SCRIPT_FILENAME为$document_root$fastcgi_script_name(确保脚本路径正确),并限制仅允许GET、POST等必要HTTP方法。certbot工具申请免费的Let’s Encrypt SSL证书,配置Apache或Nginx启用HTTPS,加密客户端与服务器之间的数据传输,防止数据被窃取或篡改。例如:sudo yum install certbot python2-certbot-nginx && sudo certbot --nginx -d yourdomain.com。mod_security模块(适用于Apache)或Nginx的WAF模块,过滤恶意请求(如SQL注入、XSS攻击),增强PHP应用的安全性。例如:sudo yum install mod_security && sudo systemctl enable mod_security && sudo systemctl start mod_security。php.ini中开启OPcache(opcache.enable = 1),缓存编译后的PHP脚本,提高性能的同时,防止攻击者通过修改脚本文件执行恶意代码。php.ini、www.conf),使用rsync或tar工具存储至异地;设置监控工具(如fail2ban)检测异常访问(如频繁的登录失败尝试),自动封禁恶意IP。