2008-12-02 102 views
10

我正在用PHP編寫一組數據庫驅動的應用程序。這些應用程序將作爲自己的用戶在Linux服務器上運行。其他用戶有時可能會在系統上,但具有非常受控制的訪問權限。其他服務器根本無法訪問。我還會向需要編寫Perl腳本的開發人員展示一個限制存儲過程API,這些腳本使用DBI和我編寫的一組函數訪問數據庫。確保數據庫連接字符串的最佳方式是什麼?

我的問題是保護其中有連接字符串的配置文件的最佳方式是什麼?

是具有足夠的[4+] 00權限的不同用戶嗎?我應該加密他們嗎?這似乎只是將問題轉移到其他地方,所以我擔心在哪裏存儲加密密鑰。我意識到Perl開發人員需要擁有自己的連接字符串,因爲他們只有執行數據庫權限。

+0

這是一個命令行應用程序,還是一個網絡應用程序? – 2008-12-02 18:13:44

+0

我認爲在99%以上的案例中假設PHP == Web應用程序是安全的。 – 2008-12-02 18:21:57

回答

7

如果機器確實是以傳統的Unix方式進行管理的,那麼J隨機用戶並不是始終都不會根源,我認爲文件系統權限是您最好的選擇。如果有人獲得未經授權的root訪問權限,那麼不會有任何加密詭計會「保護」連接字符串。

我會將連接字符串所在的文件標記爲「腳本用戶」所擁有,並按照您的描述爲其授予訪問權限。

(布拉沃意識到加密連接字符串不買任何東西,在這個例子中,安全通過隱藏是適得其反。)

0

我最好的解決方案至今,一直到配置文件存儲在一個加密的分區,以便直接訪問本機的用戶無法通過將驅動器連接到另一臺PC來取消密碼,並且具有文件系統權限,因此用戶無法從操作系統內部讀取文件。

但是,您需要明白,對攻擊者直接訪問機器的做法並不多。如果它正在運行數據庫服務器本身,那麼如果他可以修改數據庫本身,那麼保護配置文件不會產生太大的影響。只要確保一切都儘可能安全,你可能會好起來的。

2

這裏有一個免費的Apache模塊,可以幫助來管理密碼存儲訪問的鏈接:

http://uranus.it.swin.edu.au/~jn/linux/php/passwords.htm

這似乎有點複雜的我,並要求你在mod_php,並且運行PHP。而且它並沒有解決有權訪問服務器的未授權用戶只能讀取密碼文件的可能性。

我認爲你必須依賴文件權限,並相信未經授權的人不具備將sudo添加到你的PHP應用程序UID或root的能力。

相關問題