ubuntu

PHP在Ubuntu上如何配置安全设置

小樊
40
2025-08-09 13:01:51
栏目: 编程语言

以下是在Ubuntu上配置PHP安全设置的关键步骤:

  1. 系统更新
    定期更新系统和软件包,修复安全漏洞:

    sudo apt update && sudo apt upgrade  
    
  2. 配置PHP核心参数(php.ini)

    • 禁用危险函数
      disable_functions = exec, system, passthru, shell_exec, eval  
      
    • 限制文件访问
      open_basedir = /var/www/html:/tmp  
      
    • 关闭信息泄露
      expose_php = Off  
      display_errors = Off  
      log_errors = On  
      error_log = /var/log/php_errors.log  
      
    • 限制上传文件
      upload_max_filesize = 2M  
      post_max_size = 8M  
      
  3. 配置PHP-FPM(若使用)

    • 以非特权用户运行
      编辑/etc/php/{version}/fpm/pool.d/www.conf,设置:
      user = www-data  
      group = www-data  
      listen = /run/php/php{version}-fpm.sock  
      
    • 限制进程资源
      pm.max_children = 50  
      pm.max_requests = 500  
      
  4. 防火墙与网络隔离

    • 使用UFW限制端口访问:
      sudo ufw allow 'Nginx Full'  
      sudo ufw deny 9000/tcp  # 若使用TCP端口需注释掉  
      sudo ufw enable  
      
    • 禁止PHP-FPM监听公网IP(仅允许本地或Unix socket)。
  5. 安全模块与加密

    • 启用ModSecurity(Web应用防火墙):
      sudo apt install libapache2-mod-security2  
      sudo a2enmod security2  
      
    • 强制HTTPS传输:
      配置Nginx/Apache启用SSL/TLS,使用Let’s Encrypt证书。
  6. 权限与日志管理

    • 设置Web根目录权限:
      sudo chown -R www-data:www-data /var/www/html  
      sudo chmod -R 755 /var/www/html  
      
    • 定期审计日志:
      sudo tail -f /var/log/php_errors.log  
      sudo tail -f /var/log/php{version}-fpm.log  
      
  7. 其他高级措施

    • 禁用不必要的PHP模块:
      编辑/etc/php/{version}/apache2/php.ini,注释掉不需要的扩展(如extension=php_mysql.dll)。
    • 使用安全的会话配置:
      session.cookie_httponly = On  
      session.cookie_secure = On  
      session.gc_maxlifetime = 1440  
      

参考来源

0
看了该问题的人还看了