Python 網站上線前必檢查的安全與設定:SECRET_KEY、DEBUG、密碼、備份
很多人把網站做到能跑之後,就想趕快上線,但正式上線前其實有幾個很基本的安全與設定問題一定要先檢查。這些事情不一定華麗,也不一定會讓畫面更漂亮,但它們會直接影響你的網站是不是容易出事。 第一個是 SECRET_KEY。如果你用 Flask,有 session、有 flash message、有登入狀態,SECRET_KEY 就很重要。它不應...
很多人把網站做到能跑之後,就想趕快上線,但正式上線前其實有幾個很基本的安全與設定問題一定要先檢查。這些事情不一定華麗,也不一定會讓畫面更漂亮,但它們會直接影響你的網站是不是容易出事。
第一個是 `SECRET_KEY`。如果你用 Flask,有 session、有 flash message、有登入狀態,`SECRET_KEY` 就很重要。它不應該直接寫死在公開程式碼裡,更不應該用像 `dev-secret-key` 這種明顯只是測試用的值。比較合理的做法是改用環境變數,並且在正式環境用一組難猜的隨機值。
第二個是 `DEBUG`。開發時開著 debug 很方便,但正式站不應該這樣做。因為 debug 模式除了可能暴露更多錯誤資訊,也容易讓系統行為和正式環境不同。原則很簡單:本機開發可以方便,正式對外要保守。
第三個是密碼。無論是後台帳號、資料庫密碼還是第三方服務金鑰,都不應該硬寫在程式裡。尤其登入系統的密碼,至少要做雜湊,而不是純文字比對。這種事情在小站也一樣重要,因為很多小站的風險正是來自「反正只是小站」的心態。
第四個是備份。很多人會想到部署、想到網域、想到 HTTPS,卻忘了資料如果不見了怎麼辦。對 SQLite 站來說,備份尤其簡單,也尤其應該做。至少資料庫檔案與重要設定檔要有定期備份,不然哪天誤刪、更新失敗或硬碟問題,整站就沒了。
第五個是日誌與錯誤資訊。正式站不能只靠你手動刷新畫面看有沒有壞掉。你至少要知道服務有沒有正常啟動、發生錯誤時訊息記在哪裡、如何回頭查問題。這些是之後維護網站時最基本的依據。
上線前你可以至少先檢查這些:
SECRET_KEY 是否安全
DEBUG 是否關閉
密碼是否避免明碼
資料庫是否有備份
服務日誌是否可追蹤如果你把這些基礎事情先做好,即使網站規模不大,也會比很多只追求「先上線再說」的站穩很多。網站正式上線真正的差別,不在於它能不能打開,而在於它出了問題時你能不能控制風險。