在PHP 開發和運維過程中,確保PHP 環境的安全配置是極其重要的一環。 phpinfo() 函數是PHP 自帶的一個強大工具,它能夠詳細展示當前PHP 環境的所有配置信息,包括版本、編譯選項、擴展模塊、環境變量、PHP 變量以及HTTP 頭信息等。通過查看phpinfo() 輸出的內容,可以幫助我們快速檢查PHP 的安全設置是否合理和完善。
在你的服務器或本地環境中,新建一個PHP 文件,比如info.php,內容如下:
<?php
phpinfo();
?>
然後在瀏覽器中訪問:
http://gitbox.net/info.php
你將看到一個詳細的配置頁面,裡面列出了PHP 運行時的所有信息。
這個選項控制錯誤信息是否直接顯示在頁面上。生產環境應關閉,防止洩露服務器路徑和代碼信息。
display_errors => Off
如果開啟,會在HTTP 頭部暴露PHP 版本信息,容易被攻擊者利用。應關閉。
expose_php => Off
歷史遺留配置,開啟後會自動將GET/POST/Cookie 變量註冊為全局變量,容易引起安全問題,應關閉。
register_globals => Off
這兩個配置涉及到是否允許通過URL 訪問文件和包含遠程文件。生產環境通常關閉以防止遠程代碼執行攻擊。
allow_url_fopen => Off
allow_url_include => Off
限制PHP 腳本只能訪問指定目錄,防止文件系統被非法訪問。
open_basedir => /var/www/html/
啟用後,客戶端腳本無法通過JavaScript 訪問Cookie,增強防護。
session.cookie_httponly => On
通過phpinfo() 輸出的內容,你可以:
確認PHP 版本是否為最新穩定版本,防止已知漏洞利用。
檢查是否加載了不安全的擴展或模塊。
查看環境變量中是否暴露敏感信息。
結合服務器配置,驗證PHP 的文件訪問限制。
phpinfo() 是快速檢查PHP 環境信息的利器,也是安全審計的第一步。雖然phpinfo() 本身不具備安全功能,但通過它獲得的信息能幫助我們及時發現配置中的安全隱患,避免被黑客利用。務必不要將包含phpinfo() 的頁面放置在公網環境,或確保訪問權限嚴格控制。