我不喜歡在document_root下存儲站點範圍的加密密鑰和數據庫訪問信息,所以我在conf.d下使用Apache的SetEnv和php.ini文件將這些與代碼庫分開。最大的問題是,哪一個更好?內部環境變量在apache vhost文件(SetEnv SITEKEY 'oinkoink!'
)或conf.d/xxx.ini文件(db_pass="oink?"
)內?也許別的東西?使用SetEnv或php.ini存儲數據庫變量的安全性如何?
的觀光ñ缺點:
SETENV:
+存儲外DOCUMENT_ROOT
+僅給定的虛擬主機訪問
- 可見光與phpinfo()函數 - 黑客需要直接訪問/上傳漏洞的文件
get_cfg_var:
+存儲DOCUMENT_ROOT
外不與phpinfo()函數可見
- (非常差)所有定義的INI變量包括在內,所以每一個虛擬主機可以通過(ini_get_all)查詢他們,所以在一個共享的虛擬主機環境中無法使用
「如果有人獲得執行任意PHP代碼的權利......」 - 如果發生這種情況,所有投注都將關閉,並且無論您存儲數據庫信譽的位置如何,您都會被徹底地使用。 – Asaph