在PHP的配置選項中,有一個很重要的選項叫做“expose_php”。這個選項控制著在服務器上運行的PHP版本是否公開展示給外界。如果開啟這個選項,那么PHP的版本號將會在HTTP響應頭中被暴露出來,這會為那些潛在的攻擊者提供額外的信息,從而增加了攻擊的風險。
在許多情況下,這個選項是默認開啟的。例如,在Apache服務器中,PHP的配置文件(php.ini)位于“/etc/php.ini”或者“/etc/php.d/php.ini”這個位置。其中,“expose_php”選項的默認狀態是“On”。另外一個常見的情況是,許多共享主機提供商不希望他們的用戶嘗試關閉這個選項,因為那樣會把版本信息隱藏。
然而,在安全性方面,這顯然是一個非常糟糕的實踐。這里列舉一些理由,說明為什么用戶可能想要禁用這個選項:
expose_php=Off
這段代碼放在php.ini文件中即可開啟選項。
當然,expose_php=Off并不意味著您的應用程序就一定是安全的。其他重要的安全措施必須進一步采取。例如,保持應用程序、操作系統和Web服務器的更新。
此外,可能還有人會問:“如果我的PHP代碼需要知道PHP的版本怎么辦?” 事實上,您可以在代碼中使用“phpversion()”函數來獲得PHP版本,而無需開啟expose_php選項。下面的示例代碼說明了如何使用“phpversion”函數:
$version = phpversion(); echo "The current version of PHP is ".$version;
這段代碼將會輸出以下信息:
The current version of PHP is 7.4.5
總的來說,“expose_php”選項可以為潛在的攻擊者提供有用的信息,從而增加攻擊的風險。盡管這個選項在某些情況下可能會被默認開啟,但我們強烈建議您關閉它。在關閉這個選項之后,您可以在代碼中輕松獲得PHP版本號。