一般而言,通過隱藏的手段提高安全性被認為是作用不大的做法。但某些情況下,盡可能的多增加一份安全性都是值得的。
一些簡單的方法可以說明隱藏 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
檔案的副檔名改為以上的副檔名。這樣就通過隱藏來提高了安全性,雖然防禦能力很低而且有些缺點。