我第一次編寫一個大型 PHP 應用程式(帶有設定),想知道我應該為權限採取哪些安全預防措施。
setup.php 使用 fopen/fwrite 根據來自 setup.php 的 POST 資料產生 config.php。這可行,但似乎我無法寫入 config.php,除非我將其權限設為777
。
Config.php 本質上將在 PHP 變數中包含資料庫憑證(將被 include() 編輯),這是一個好的保留嗎777
?
我想知道這是否可以,或者我應該指示用戶將權限更改回 655 等(我不確定)。
答案1
您應該將檔案權限設定為完成手邊工作所需的權限。對於安裝可能是 777,對於運行應用程式可能是 644。
每次執行應用程式時,您都應該檢查權限(關鍵檔案和路徑上的權限)是否符合您的要求,然後發出錯誤訊息,如果不是,請停止應用程式執行。
答案2
許多 PHP 應用程式要求您在安裝產品時將 config.php 設定為 777。我認為這是完全可以接受的,但應警告用戶,安裝完成後應將檔案設定回 644。
另一個解決方案是讓使用者使用資料庫設定對 config.php 進行硬編碼。然而,這對於一些新用戶來說確實使事情變得複雜。