以下是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)检查安全问题,避免引入恶意代码。
参考来源: