首页主机资讯centos php配置中安全设置有哪些

centos php配置中安全设置有哪些

时间2025-12-04 01:38:04发布访客分类主机资讯浏览418
导读:CentOS 上 PHP 的安全设置清单 一 基础与运行环境 保持系统与 PHP 为最新,及时安装安全补丁(如执行:sudo yum update)。 仅开放必要端口,使用 firewalld 放行 80/443: sudo firewa...

CentOS 上 PHP 的安全设置清单

一 基础与运行环境

  • 保持系统与 PHP 为最新,及时安装安全补丁(如执行:sudo yum update)。
  • 仅开放必要端口,使用 firewalld 放行 80/443
    sudo firewall-cmd --permanent --zone=public --add-service=http
    sudo firewall-cmd --permanent --zone=public --add-service=https
    sudo firewall-cmd --reload
  • 启用 SELinux enforcing 模式,并按需配置策略,作为系统层额外防护。
  • 使用 HTTPS/TLS(如安装 mod_ssl 并配置证书),避免明文传输敏感数据。

二 php.ini 关键安全选项

  • 错误与信息泄露控制
    • 关闭对外错误显示:display_errors = Off
    • 开启错误日志:log_errors = Onerror_log = /var/log/php_errors.log
    • 隐藏 PHP 版本:expose_php = Off
  • 远程资源与包含
    • 禁止远程文件包含:allow_url_fopen = Offallow_url_include = Off
  • 危险函数禁用(按应用需要精简)
    • 示例:disable_functions = eval,assert,system,shell_exec,passthru,exec,popen,pcntl_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,phpinfo
  • 文件系统访问限制
    • 目录白名单:open_basedir = /var/www/html:/tmp(路径按实际站点调整)
  • 会话安全
    • 仅 HttpOnly 与 Secure:session.cookie_httponly = Onsession.cookie_secure = On
    • 防 CSRF 与跨站泄露:session.cookie_samesite = Strict
  • 上传与请求大小(按业务最小化设置)
    • 示例:file_uploads = Onupload_max_filesize = 2Mpost_max_size = 8M
  • 历史/废弃项说明
    • register_globals:PHP 5.3.0 起废弃,5.4.0 移除
    • magic_quotes_gpc/runtime/sybasePHP 5.4.0 移除,不要依赖其“自动转义”来防注入
    • safe_mode已移除,不要依赖,改用其他隔离与控制手段

三 PHP-FPM 与进程安全

  • 运行身份与权限
    • 进程用户/组:user = apache,group = apache(或对应 Web 服务运行用户)
    • 监听与属主:如 listen = /run/php-fpm/www.sock,并设置 listen.owner = apache,listen.group = apache,避免权限错配导致代码被读取/写入
  • 并发与超时(按负载调优)
    • 示例:pm.max_children = 50pm.start_servers = 5pm.min_spare_servers = 5pm.max_spare_servers = 35request_terminate_timeout = 60s
  • 变更后重启:sudo systemctl restart php-fpm(并重启 httpdnginx

四 Web 服务器与周边加固

  • Apache 示例(目录与索引控制)
    • < Directory “/var/www/html”>
      • Options -Indexes +FollowSymLinks
      • AllowOverride All
      • Require all granted
  • Nginx + PHP-FPM 示例(仅处理合法 PHP,避免解析非脚本)
    • location ~ .php$ {
      • include snippets/fastcgi-php.conf;
      • fastcgi_pass unix:/run/php-fpm/www.sock;
      • fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      • include fastcgi_params;
    • }
  • 入侵防护与账号安全
    • 部署 Fail2Ban 监控异常登录并封禁;
    • 数据库使用最小权限账户、强口令,限制来源(如仅 localhost)。

五 维护与验证

  • 持续更新与备份
    • 定期执行系统与软件更新;
    • 定期备份站点与数据库(如 rsyncmysqldump),并验证可恢复性。
  • 日志与监控
    • 集中监控 /var/log/php_errors.log 与 Web/FPM 日志,关注异常调用与上传行为;
    • 定期复核 disable_functionsopen_basedirsession.cookie_* 等关键配置。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos php配置中安全设置有哪些
本文地址: https://pptw.com/jishu/763032.html
如何设置centos php内存限制 如何在centos上配置php-fpm与nginx

游客 回复需填写必要信息