centos nodejs安全配置要点
小樊
43
2025-08-20 16:38:48
一、系统环境安全
- 最小权限原则
- 避免以root用户运行Node.js应用,创建专用用户并限制其权限。
- 禁用不必要的系统账户,修改默认SSH端口,启用密钥认证。
- 系统更新与防火墙
- 定期更新CentOS系统和Node.js依赖包,修复漏洞。
- 使用
firewalld
限制端口访问,仅开放应用必要端口(如HTTP 80、HTTPS 443)。
二、Node.js应用安全
- 依赖管理
- 使用
npm audit
或snyk
定期扫描依赖漏洞,固定版本号避免意外更新。 - 优先使用LTS版本Node.js,通过NVM管理多版本。
- 输入验证与防护
- 对用户输入进行校验(如使用
express-validator
),防止SQL注入、XSS攻击。 - 采用参数化查询或ORM框架(如Sequelize)操作数据库。
- 安全通信与加密
- 启用HTTPS,配置SSL/TLS证书,强制跳转HTTP到HTTPS。
- 敏感数据(如密码)使用bcrypt等强哈希算法存储。
- HTTP安全头配置
- 使用
Helmet
中间件设置安全头,如Content-Security-Policy
、X-Frame-Options
等。
- 速率限制与资源管控
- 通过
express-rate-limit
限制请求频率,防范DDoS攻击。 - 限制文件上传大小,验证文件类型,避免恶意文件上传。
三、运行时与监控
- 进程管理
- 使用PM2等工具守护进程,实现自动重启和日志管理。
- 日志与监控
- 记录应用日志,集成监控工具(如Prometheus、Grafana)实时追踪异常。
四、其他关键措施
- 禁用不必要的模块:移除未使用的npm包,减少攻击面。
- 定期备份:对应用数据和配置文件进行定期备份,异地存储。
参考来源: