在CentOS上确保Node.js安全需从系统、应用、依赖等多层面防护,关键措施如下:
-
系统级安全加固
- 禁用非必要超级用户,锁定默认无用账号(如adm、lp等),设置强密码策略(包含大小写字母、数字、特殊字符,长度>10位)。
- 配置防火墙(firewalld/iptables),仅开放必要端口(如HTTP 80、HTTPS 443、SSH 22)。
- 启用SELinux限制进程权限,或使用Nginx反向代理隐藏Node.js服务端口。
- 定期更新系统及软件包,修复已知漏洞。
-
Node.js应用安全配置
- 避免以root权限运行,使用非root用户启动应用。
- 使用
npm audit
或snyk
定期扫描依赖漏洞,固定版本号(package-lock.json
)。
- 实施输入验证(如使用
validator
库),防止SQL注入、XSS攻击。
- 启用HTTPS加密传输,配置SSL证书。
- 设置安全HTTP头(如
Content-Security-Policy
、X-Frame-Options
),防范点击劫持等攻击。
- 限制请求速率(如
express-rate-limit
中间件),防止DDoS攻击。
-
资源与监控管理
- 限制Node.js进程资源使用(如CPU、内存),避免资源耗尽攻击。
- 部署日志监控(如
rsyslog
或journalctl
),实时追踪异常行为。
- 定期备份数据,采用异地存储防止数据丢失。