展开菜单
首页 精品内容 本月促销 装机必备 Windows PDF教程 macOS软件 IOS软件 Android AI 专题
全部分类

当前位置:

首页 > 编程开发 > centos下php安全配置有哪些要点

centos下php安全配置有哪些要点

CentOS下PHP安全配置包括系统更新、防火墙仅开放80和443端口、php.ini关闭错误显示并禁用危险函数、限制文件访问路径与上传、强化会话安全、隐藏PHP版本,启用HTTPS加密,执行输入验证与输出编码,限制数据库权限,配置日志监控与Fail2Ban入侵检测,以及用户权限管理。

本文目录

    在CentOS环境下做PHP安全配置,说来说去核心就几件事:系统本身得干净,PHP的嘴得管住,用户输入得防一手。别看知识点零散,串起来就是一条完整的防御链。下面从底层到应用层,逐一过一遍关键节点。

    1. 系统及PHP基础安全维护
    CentOS和PHP必须时刻保持最新版本,这活儿没啥技术含量,但常被忽略。定期执行sudo yum update -y,把系统内核、PHP相关包的安全补丁补上,很多已知漏洞就自然堵住了。

    centos下php安全配置有哪些要点

    2. 防火墙与网络访问控制
    用Firewalld限制外部对PHP服务的访问,只开放HTTP(80)和HTTPS(443)端口,其他统统关掉。下面这组命令干三件事:安装防火墙、启动服务、配置规则并永久生效。
    sudo yum install firewalld -y
    sudo systemctl start firewalld
    sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
    sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
    sudo firewall-cmd --reload
    这样一来,非法IP想探测你的PHP应用?连门都进不来。 3. PHP配置文件(php.ini)关键安全设置
    php.ini是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,curl_exec,curl_multi_exec,parse_ini_file,show_source
    • 限制文件访问路径:用open_basedir把PHP的脚步限制在网站根目录里,杜绝越界读系统文件:
      open_basedir = /var/www/html/:/tmp/
    • 控制文件上传:上传大小和类型必须卡死。2M上限的图片、文档够了,上传目录别放在web可访问的位置:
      upload_max_filesize = 2M
      post_max_size = 8M
      file_uploads = On
    • 强化会话安全:Cookie设置要狠一点——仅HTTPS传输、禁止Ja vaScript访问、跨站请求拒绝发送:
      session.cookie_secure = On
      session.cookie_httponly = On
      session.cookie_samesite = Strict
      session.gc_maxlifetime = 1440
    • 隐藏PHP版本信息:不让HTTP头暴露版本号,少给攻击者线索:
      expose_php = Off
    以上配置改的是/etc/php.ini,改完别忘了重启Web服务(Apache或Nginx)。 4. PHP-FPM安全配置(若使用)
    如果用了PHP-FPM,配置文件/etc/php-fpm.d/www.conf里两个要点:
    • 以非root用户运行:降低权限提升风险。把user和group改成Apache或nginx对应的用户:
      user = apache
      group = apache
    • 限制可执行的文件扩展名:只允许解析.php、.php3等典型PHP扩展:
      security.limit_extensions = .php .php3 .php4 .php5 .php7
    改完重启PHP-FPM:sudo systemctl restart php-fpm。 5. 安全扩展安装与配置
    - ModSecurity:开源WAF,能拦截SQL注入、XSS等常见攻击。装一个不亏:
    sudo yum install mod_security -y
    sudo systemctl enable mod_security
    sudo systemctl start mod_security
    - 其他扩展如php-mcrypt(新版本可能已移除)、php-gd、php-mbstring,能增强数据处理和加密能力,按需安装。 6. HTTPS加密传输
    SSL/TLS证书是标配,尤其涉及用户密码、支付信息时。步骤不多:先装mod_ssl和openssl,再配置证书路径,最后重启Apache。注意:证书得找受信任的CA签,自签证书会触发浏览器警告,反而增加用户疑虑。
    sudo yum install mod_ssl openssl -y
    # 编辑 /etc/httpd/conf.d/ssl.conf 指定SSLCertificateFile和SSLCertificateKeyFile
    sudo systemctl restart httpd
    7. 输入验证与输出编码
    - 输入验证:用户提交的每个字段都要做格式检查——邮箱对不对、长度超没超、有没有带