以下是CentOS下PHP安全加固的关键步骤:
-
系统及软件更新
定期更新系统和PHP至最新版本,修复已知漏洞:sudo yum update -y -
配置PHP安全参数
- 编辑
/etc/php.ini:- 关闭错误显示:
display_errors = Off,开启日志记录:log_errors = On。 - 限制文件上传:
file_uploads = On,设置upload_max_filesize和post_max_size为合理值(如2M)。 - 禁用危险函数:
disable_functions = exec,shell_exec,system,passthru等。 - 启用会话安全:
session.cookie_httponly = On,session.cookie_secure = On(HTTPS下)。
- 关闭错误显示:
- 若使用PHP-FPM,配置
/etc/php-fpm.d/www.conf,设置非root用户运行。
- 编辑
-
Web服务器安全加固
- Apache:隐藏版本信息,禁止目录遍历:
ServerSignature Off Options -Indexes - Nginx:限制PHP文件访问权限,禁止执行非PHP文件。
- Apache:隐藏版本信息,禁止目录遍历:
-
防火墙与网络隔离
使用firewalld限制仅开放HTTP(80)、HTTPS(443)端口:sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload -
加密与认证
- 启用HTTPS,配置SSL证书。
- 对用户输入进行过滤和验证,防止SQL注入、XSS攻击(如使用预处理语句、
htmlspecialchars)。
-
权限与日志管理
- 限制文件和目录权限,遵循最小权限原则。
- 定期备份网站数据和数据库。
- 监控系统日志和PHP错误日志,及时发现异常。
注意:部分配置(如safe_mode)在PHP新版本中已移除,需根据实际环境调整。操作前建议备份配置文件,并在测试环境验证。