1. 系統基礎安全加固
sudo apt update && sudo apt upgrade(Ubuntu/Debian)或sudo yum update(CentOS),修補系統內核及軟件包漏洞,避免被已知攻擊利用。ufw(Ubuntu)或firewalld(CentOS)限制端口訪問,僅開放必要端口(如SSH的22端口、HTTP的80端口、HTTPS的443端口)。例如,sudo ufw allow 22/tcp && sudo ufw allow 80/tcp && sudo ufw allow 443/tcp && sudo ufw enable。2. Node.js運行環境安全配置
nodeuser)運行Node.js應用,通過sudo chown -R nodeuser:nodeuser /path/to/app設置應用目錄所有權,啟動時使用sudo -u nodeuser node app.js,降低權限濫用風險。pm2管理Node.js進程,實現自動重啟(pm2 start app.js --name "my-app")、日志管理(pm2 logs)和集群模式(pm2 scale app 4),提升應用穩定性與可維護性。nvm(Node Version Manager)安裝和管理Node.js版本,避免系統包管理器的權限問題,且能快速切換版本(如nvm install 20 && nvm use 20),確保使用穩定的LTS版本。3. 依賴與代碼安全控制
npm audit檢查項目依賴中的已知漏洞,使用npm audit fix自動修復可修復的漏洞;或使用snyk等第三方工具深度掃描,及時更新有漏洞的依賴包。package.json中使用package-lock.json或npm shrinkwrap固定依賴版本,避免npm install時自動升級到有漏洞的版本,確保環境一致性。express-validator校驗表單數據)和過濾(如使用DOMPurify清理HTML),防止SQL注入、XSS攻擊;避免使用eval()、new Function()等危險函數,減少代碼執行風險。4. 通信與數據安全保障
sudo certbot certonly --standalone -d yourdomain.com),配置Node.js應用(如Express)或Web服務器(如Nginx)啟用HTTPS,強制加密數據傳輸,防止中間人攻擊。helmet中間件設置安全HTTP頭,如Content-Security-Policy(限制資源加載來源)、X-Frame-Options(防止點擊劫持)、X-XSS-Protection(啟用瀏覽器XSS過濾器),提升應用安全性。例如:app.use(helmet({ contentSecurityPolicy: { directives: { defaultSrc: ["'self'"] } } }));。5. 監控與應急響應機制
morgan中間件記錄HTTP請求日志(app.use(morgan('combined'))),或通過pm2 logs查看應用日志;將日志集中存儲(如ELK Stack、Splunk),監控異常行為(如頻繁的404請求、大量POST請求),及時發現攻擊跡象。auditd審計系統,記錄關鍵操作(如文件修改、用戶登錄)。