標籤:ber ubuntu localhost 使用者 get rhel 還需 line 命令列
PHP 配置預設允許伺服器在 HTTP 回應標頭 X-Powered-By 中顯示安裝在伺服器上的 PHP 版本。出於伺服器安全原因(雖然不是主要的要擔心的威脅),建議你禁用或隱藏此資訊,避免那些針對你的伺服器的攻擊者知道你是否運行了 PHP。在本文中,我們將解釋如何隱藏或關閉伺服器 HTTP 回應標頭中的 PHP 版本號碼。
PHP 配置預設允許伺服器在 HTTP 回應標頭 X-Powered-By 中顯示安裝在伺服器上的 PHP 版本。
出於伺服器安全原因(雖然不是主要的要擔心的威脅),建議你禁用或隱藏此資訊,避免那些針對你的伺服器的攻擊者知道你是否運行了 PHP。
假設你伺服器上安裝的特定版本的 PHP 具有安全性漏洞,而攻擊者瞭解到這一點,他們將更容易利用漏洞並通過指令碼訪問伺服器。
在我以前的文章中,我已經展示了如何隱藏 apache 版本號碼,你已經看到如何不再顯示 apache 的安裝版本。但是如果你在你的 apache 伺服器上運行 PHP,你還需要隱藏 PHP 的安裝版本,這我們將在本文中展示。
因此,在本文中,我們將解釋如何隱藏或關閉伺服器 HTTP 回應標頭中的 PHP 版本號碼。
此設定可以在載入的 PHP 設定檔中配置。如果你不知道此設定檔在伺服器上的位置,請運行以下命令找到它:
- $ php -i | grep "Loaded Configuration File"
PHP 設定檔位置
- ---------------- 在 CentOS/RHEL/Fedora 上----------------
- Loaded Configuration File => /etc/php.ini
- ---------------- 在 Debian/Ubuntu/Linux Mint 上----------------
- Loaded Configuration File => /etc/php/7.0/cli/php.ini
在對 PHP 設定檔進行任何更改之前,我建議您首先備份您的 PHP 設定檔,如下所示:
- ----------------在 CentOS/RHEL/Fedora 上----------------
- $ sudo cp /etc/php.ini /etc/php.ini.orig
- ---------------- 在 Debian/Ubuntu/Linux Mint 上----------------
- $ sudo cp /etc/php/7.0/cli/php.ini /etc/php/7.0/cli/php.ini.orig
用你最喜歡的編輯器,使用超級使用者權限開啟檔案:
- ---------------- 在 CentOS/RHEL/Fedora 上----------------
- $ sudo vi /etc/php.ini
- ----------------在 Debian/Ubuntu/Linux Mint 上----------------
- $ sudo vi /etc/php/7.0/cli/php.ini
定位到關鍵詞 expose_php,並將值設定成 Off:
- expose_php = Off
儲存並退出檔案。之後,重啟 網頁伺服器:
- ---------------- 使用 SystemD ----------------
- $ sudo systemctl restart httpd 或
- $ sudo systemctl restart apache2
- ---------------- 使用 SysVInit ----------------
- $ sudo service httpd restart 或
- $ sudo service apache2 restart
最後,不過同樣重要,使用下面的命令檢查伺服器 HTTP 回應標頭是否仍然顯示你的 PHP 版本號碼。
- lynx -head -mime_header http://localhost
- 或者
- $ lynx -head -mime_header http://server-address
這裡的標誌含義是:
- -head – 發送一個請求 mime 前序的 HEAD 請求。
- -mime_header – 列印所提取文檔的 MIME 標題及其原始碼。
注意: 確保你系統中已經安裝了命令列 網頁瀏覽器 lynx。
就是這樣了!在本文中,我們解釋了如何隱藏伺服器 HTTP 回應標頭中的 PHP 版本號碼以保護 網頁伺服器免受可能的攻擊。你可以在下面的評論欄中留下你的想法或者相關的問題。
如何在HTTP頭中隱藏PHP版本號碼