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审计系统,记录关键操作(如文件修改、用户登录)。