2012-01-05 74 views
3

我剛剛完成了一項工作,在一箇舊式開發的網頁上工作。隱藏/保護php-engine配置文件的最佳做法?

這意味着,數據庫連接的常用變量/常量和變量在查看php-engine中,而不是在單獨的文件中。 :-(

我以爲我會把它們放入一個config.php文件或config.inc文件,只是使用require_once(「/路徑/文件名」);在發動機

我的問題是,我是不熟悉的固定,所以我想,我更改的權限(也許755?)。

還有什麼我能做的麼?

回答

3

移動配置文件中的公共文件夾之外,因此它不能通過URL訪問,否則,你的網絡服務器配置錯誤可能會發送文件解析(有人可能忘記告訴網絡服務器.inc文件應該運行呃php。我從來沒有爲他們命名.inc。總是.php)。這很少見,但在我訪問的網站上至少發生過兩次這種情況,他們的文件中也有證書。

+0

你能告訴我在哪裏可以配置它?例如,引擎php文件位於/ test文件夾中,我想將此配置文件放入/ test/config目錄,文件夾和配置文件需要什麼權限,或者有必要將任何內容一個php.ini文件? – tildy 2012-01-05 12:59:46

+1

@tildy在你的apache配置中:https://httpd.apache.org/docs/2.0/mod/mod_mime.html#addhandler – Gordon 2012-01-05 14:59:32

3

需要保留文件權限。但你確實可以通過以下方式使腳本本身無法訪問:

<Files config.php> 
    Order Deny 
    Deny From All 
</Files> 

但這只是一種表面上的預防措施。如果您將該腳本命名爲「config.php」,則無論如何都不能通過網絡訪問。

如果您使用的是共享主機,則無法阻止其他帳戶的窺探。這需要使用suphp/suexec進行服務器設置,以限制文件系統訪問其他用戶。

+1

謝謝,我只想隱藏網絡。所以Gordon的答案應該是可用的:我需要將這個文件從公共文件夾移出。 – tildy 2012-01-05 12:46:10

1

如果您將您的配置文件命名爲whatever.php,並且它只有常量或變量定義(或者甚至更多的代碼)並且包含它,那麼這沒有任何安全問題。 WordPress的使用這種方法

+0

永遠不要以爲任何事情都有「沒有安全問題」。總有一層可以添加的保護層。 – Cheekysoft 2012-01-05 12:49:49

+0

我知道。但問題不同。 – tildy 2012-01-05 12:52:51