章 32. 隱藏 PHP

一般而言,通過隱藏的手段提高安全性被認為是作用不大的做法。但某些情況下,盡可能的多增加一份安全性都是值得的。

一些簡單的方法可以說明隱藏 PHP,這樣做可以提高攻擊者發現系統弱點的難度。在 php.ini 檔案裡設定 expose_php = off ,可以減少他們能獲得的有用訊息。

另一個策略就是讓 web 伺服器用 PHP 解析不同副檔名。無論是通過 .htaccess 檔案還是 Apache 的配置檔,都可以設定能誤導攻擊者的檔案副檔名:

例子 32-1. 把 PHP 隱藏為另一種語系

# 使PHP看上去像其它的寫程式語系
AddType application/x-httpd-php .asp .py .pl
或是乾脆徹底隱藏它:

例子 32-2. 使用不明的副檔名作為 PHP 的副檔名

# 使 PHP 看上去像不明的檔案類型
AddType application/x-httpd-php .bop .foo .133t
或是把它隱藏為 HTML 頁面,這樣所有的 HTML 檔案都會通過 PHP 引擎,會為伺服器增加一些負擔:

例子 32-3. 用 HTML 做 PHP 的檔案副檔名

# 使 PHP 代碼看上去像 HTML 頁面
AddType application/x-httpd-php .htm .html
要讓此方法生效,必須把 PHP 檔案的副檔名改為以上的副檔名。這樣就通過隱藏來提高了安全性,雖然防禦能力很低而且有些缺點。