以下是Linux服務器上安全配置Node.js的關鍵措施:
- 系統基礎安全
- 使用非root用戶運行Node.js應用,通過
useradd
創建專用用戶并設置最小權限。
- 禁用不必要的系統賬戶,限制登錄嘗試次數(如配置PAM)。
- Node.js環境加固
- 通過NodeSource倉庫安裝Node.js,避免使用默認包管理器的舊版本。
- 定期更新Node.js及依賴庫,使用
npm audit
修復漏洞,鎖定依賴版本(package-lock.json
)。
- 避免使用
eval()
、with
等不安全語法,限制全局變量污染。
- 網絡安全配置
- 啟用HTTPS,使用Let’s Encrypt免費證書或自簽名證書,配置Nginx/Apache反向代理。
- 通過防火墻(如
ufw
/firewalld
)限制端口訪問,僅開放必要端口(如80、443)。
- 配置CORS策略,限制跨域請求來源,使用Helmet設置安全HTTP頭(如
X-Frame-Options
)。
- 敏感信息管理
- 使用環境變量存儲API密鑰、數據庫密碼,避免硬編碼在代碼中。
- 對用戶密碼使用bcrypt等加密算法存儲,避免明文傳輸。
- 應用層安全
- 實現強身份驗證(如JWT、OAuth),設置合理的會話超時和退出機制。
- 限制請求頻率(如
express-rate-limit
),防止DoS攻擊。
- 記錄訪問日志和錯誤日志,定期審計異常行為。
- 依賴與代碼安全
- 定期掃描依賴庫漏洞(如Snyk、npm audit),及時更新或替換有風險的庫。
- 使用靜態代碼分析工具(如ESLint)檢查安全問題,避免引入惡意代碼。
參考來源: