name: nestjs-performance-security domain: nestjs description: "提供NestJS性能优化与安全性支持,包括数据库优化、缓存策略、异步处理、API性能、代码优化、认证与授权、数据验证、数据加密、安全防护、依赖安全等。当用户需要NestJS性能优化建议、安全实践指导或性能问题排查时调用。"
NestJS 性能优化与安全性
技能描述
提供NestJS性能优化与安全性支持,包括数据库优化、缓存策略、异步处理、API性能、代码优化、认证与授权、数据验证、数据加密、安全防护、依赖安全等。
适用场景
- 优化NestJS应用的性能
- 提升NestJS应用的安全性
- 解决NestJS应用的性能问题
- 指导NestJS应用的安全实践
核心内容
性能优化
数据库优化
- 使用索引优化查询
- 避免N+1查询问题
- 使用连接池
- 优化SQL查询语句
- 使用查询缓存
- 合理使用事务
- 数据库读写分离
缓存策略
- 使用Redis缓存热点数据
- 实现多级缓存
- 合理设置缓存过期时间
- 使用缓存穿透/击穿/雪崩防护
- 缓存预热策略
异步处理
- 使用异步非阻塞IO
- 使用消息队列处理耗时任务
- 使用Bull队列处理后台任务
- 使用事件驱动架构
- 使用WebSocket实现实时通信
API性能
- 实现API响应压缩
- 使用分页查询
- 实现字段过滤(只返回需要的字段)
- 使用GraphQL优化数据获取
- 实现请求限流
代码优化
- 使用懒加载模块
- 优化依赖注入作用域
- 使用单例模式减少实例创建
- 避免循环依赖
- 使用Tree-shaking优化打包
安全性
认证与授权
- 使用JWT进行身份认证
- 实现RBAC权限控制
- 使用Passport.js认证策略
- 实现双因素认证(2FA)
- 使用OAuth2.0和OpenID Connect
数据验证
- 使用class-validator进行DTO验证
- 使用class-transformer转换数据
- 实现自定义验证管道
- 验证所有用户输入
- 防止SQL注入、XSS、CSRF
数据加密
- 使用bcrypt加密密码
- 使用AES加密敏感数据
- 使用HTTPS加密传输
- 使用环境变量管理密钥
- 定期更新加密算法
安全防护
- 实现请求限流(Rate Limiting)
- 使用Helmet设置安全HTTP头
- 实现CORS策略
- 防止暴力破解
- 实现IP白名单/黑名单
- 使用安全日志记录
依赖安全
- 定期更新依赖包
- 使用npm audit检查漏洞
- 使用Snyk进行安全扫描
- 避免使用有已知漏洞的库
错误处理与安全
- 使用全局异常过滤器
- 统一错误响应格式
- 不要在生产环境中暴露错误堆栈
- 记录错误日志到监控系统
- 区分业务异常和系统异常