首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

隱藏 HTTP Header 中的 PHP 版本信息:expose_php 配置與安全加固

     編輯:PHP 綜合知識

風險分析

默認配置下,PHP 會在響應頭暴露版本信息:

X-Powered-By: PHP/7.4.33

攻擊者可通過掃描器批量識別低版本 PHP 服務器,針對性利用已知漏洞(如 HashDoS、反序列化 RCE、內存破壞等)。

解決方案:一行配置

方法 1:php.ini(全局生效)

; 找到 expose_php = On
expose_php = Off

重啟 PHP-FPM/Apache 後生效,響應頭將不再包含 X-Powered-By。

方法 2:PHP-FPM 池配置(單站點/池生效)

; /etc/php/7.4/fpm/pool.d/www.conf
php_admin_flag[expose_php] = off

優點:不影響同服務器其他站點,適合共享主機環境。

方法 3:運行時設置(不推薦,不生效)

ini_set('expose_php', '0'); // ❌ 無效,該屬性為 PHP_INI_SYSTEM,僅啟動時讀取

驗證方法

curl -I https://your-site.com
# 修改前
X-Powered-By: PHP/7.4.33

# 修改後
# 無 X-Powered-By 頭

進階:Nginx/Apache 層面雙重保險

# Nginx
fastcgi_hide_header X-Powered-By;
# 或主動移除
more_clear_headers 'X-Powered-By'; # 需安裝 headers-more-nginx-module
# Apache (.htaccess 或 httpd.conf)
Header unset X-Powered-By
Header always unset X-Powered-By

安全基線清單(最小權限原則)

配置項推薦值風險等級
expose_phpOff🟡 中(信息洩露)
display_errorsOff (生產)🔴 高(路徑/代碼洩露)
log_errorsOn🟢 低(審計需求)
error_log/var/log/php/error.log🟢 低
allow_url_fopenOff🟡 中(RFU/RCE 向量)
allow_url_includeOff🔴 高(遠程代碼執行)
session.cookie_httponly1🟡 中(XSS 竊取 Cookie)
session.cookie_secure1 (HTTPS)🟡 中(中間人劫持)
session.use_strict_mode1🟢 低(Session 固定攻擊)

結語

關閉 expose_php 是 PHP 安全加固的「必做題」,成本極低(一行配置),收益明顯(阻斷自動化掃描指纹識別)。配合 display_errors=Off、session.cookie_httponly=1、Web 服務器層面移除版本頭,構建纵深防禦。建議將此檢查項納入上線清單與定期安全掃描基線。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved