centos php如何安全防护
导读:CentOS 上 PHP 安全防护实操清单 系统与基础防护 保持系统与软件为最新:执行 sudo yum update -y,及时修补漏洞。 启用并配置 Firewalld,仅开放必要端口(HTTP/HTTPS): sudo yum in...
CentOS 上 PHP 安全防护实操清单
系统与基础防护
- 保持系统与软件为最新:执行 sudo yum update -y,及时修补漏洞。
- 启用并配置 Firewalld,仅开放必要端口(HTTP/HTTPS):
sudo yum install -y firewalld
sudo systemctl start firewalld & & sudo systemctl enable firewalld
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload - 使用 HTTPS:安装 mod_ssl 并配置证书,重启 httpd。
- 运行最小化服务与最小权限账户,禁用不必要的端口与服务,降低攻击面。
PHP 运行时安全配置
- 关闭错误显示、开启错误日志:
display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log - 禁用危险函数(按应用需求精简):
disable_functions = eval,exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,phpinfo - 限制文件访问与上传:
open_basedir = /var/www/html:/tmp
file_uploads = On
upload_max_filesize = 2M
post_max_size = 8M - 关闭远程包含:
allow_url_fopen = Off
allow_url_include = Off - 资源与性能硬化(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 - 兼容性与历史选项说明:
- 新版本 PHP 已移除 safe_mode(无需设置)。
- register_globals 在 PHP 5.4+ 已移除,无需配置。
- 若使用 PHP-FPM,确保池配置以非 root 运行(如:user=apache, group=apache)。
Web 服务器与进程隔离
- 进程隔离与最小权限:
- Apache:以 apache 等非 root 用户运行。
- PHP-FPM:在 /etc/php-fpm.d/www.conf 中设置 user/group 为非 root,并分离 listen(如 127.0.0.1:9000 或 /run/php-fpm.sock),配合 Nginx/Apache 的 proxy_fcgi 或 fcgi 方式转发。
- 静态资源与动态请求分离,限制上传目录执行权限(如 Nginx 配置 location ~* ^/uploads/.*.(php|phar)$ { deny all; } )。
- 仅开放 80/443,隐藏版本信息,启用 mod_security 等 WAF 进行请求过滤与规则拦截。
应用与数据库安全
- 输入校验与输出转义:使用 filter_var() 校验输入,输出使用 htmlspecialchars() 防 XSS。
- 防注入:全部使用 预处理语句/参数化查询(PDO/MySQLi)。
- 会话与认证:设置 session.cookie_httponly=1、session.cookie_secure=1(仅 HTTPS)、session.use_strict_mode=1;密码使用 password_hash()/password_verify()。
- 文件上传安全:校验 MIME 类型/文件头/扩展名,限制大小,重命名存储,隔离到非 Web 可执行目录,必要时进行 病毒扫描。
- 框架安全:启用 CSRF 令牌、设置 SameSite Cookie、配置 CSP 策略。
运维与持续加固
- 持续更新与补丁:系统与 PHP 定期 yum update,关注安全公告。
- 备份与恢复演练:定期备份 /var/www/html 与数据库(如 mysqldump),并进行可恢复性验证。
- 日志与监控:集中收集 PHP-FPM 访问/慢日志 与 Web 服务器日志,设置告警。
- 安全基线巡检:周期性核查 php.ini、www.conf、httpd/ssl 配置 与系统账户权限。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos php如何安全防护
本文地址: https://pptw.com/jishu/767591.html
