隱藏PHP
還可以把你在使用PHP 來驅動網站的這一事實隱藏起來,或者至少不那麼明顯。使用expose_php指令就能避免將php版本信息追加到Web 服務器簽名的最後。不允許訪問phpinfo()可以防止攻擊者得到你的軟件版本號和其他重要信息。通過改變文檔擴展名,使得這些頁面映射到PHP 腳本不容易被看出來。
1.expose_php=On|Off
作用域:PHP_INI_SYSTEM;默認值:On。
啟用時,PHP指令expose_php將細節追加到服務器簽名後面。例如,如果啟用了ServerSignature,ServerTokens設置為Full,並且啟用了此指令,服務器簽名檔有關部分如下:
Apache/2.0.44(Unix) DAV/2 PHP/5.0.0b3-dev Server at www.example.com Port 80
如果expose_php被禁用,則服務器簽名如下所示:
Apache/2.0.44(Unix) DAV/2 Server at www.example.com Port 80
2.刪除phpinfo() 調用的所有實例
phpinfo()函數提供了一個很棒的工具,可用於在指定服務器上查看PHP 配置的總結。但是,由於在服務器上未加保護,這些文件對於攻擊者來說實可謂是一個金礦。例如,這個函數能生成操作系統、PHP 和Web 服務器版本、配置標志的有關信息,還能生成關於所有可用擴展及其版本的詳細報告。如果允許攻擊者訪問此信息,就更有可能發現並利用潛在的攻擊漏洞。
遺憾的是,似乎許多開發人員沒有意識到或不關心這些漏洞,因為只要在搜索引擎中鍵入phpinfo.php,將得到大約336 000 個結果,其中很多鏈接直接指向執行phpinfo()命令的文件,因而提供了關於服務器的大量信息。對於早期脆弱的PHP 版本。只需快速地修改搜索條件,加入其他關鍵詞,就能得到原來結果的一個子集,而這將成為攻擊的主要對象,因為他們使用了已知不安全的PHP 、Apache 、IIS版本和各種所支持的擴展。
允許其他人查看phpinfo()的結果,這實質上相當於向公眾提供一個路線圖,其中列出了你的服務器的許多技術特性和缺陷。不要僅僅因為懶惰未能刪除或保護這個文件而成為攻擊的犧牲品。
3.修改文檔擴展名
啟用PHP的文檔一般通過其獨特的擴展名就能識別,最常見的包括.php、php3 和.phtml 。你知道這可以很容易地改為你希望的其他擴展名嗎?甚至可以改成是.html、.asp或者.jsp?,為此只要在httpd.conf 文件中修改如下一行:
Addtype application/x-httpd-php .php
添加所希望的任何擴展名,例如:
AddType application/x-httpd-php .asp
當然,要確保這不會導致與其他安裝的服務器技術相沖突。