Node.js 安全实战 · 目录

30 节 · 从入门到加固
🛡️ 安全色系
📘 漏洞修复 30
🧪 动手实践
01

Node.js 安全概述

为什么 Node.js 容易受攻击?常见攻击面分析,安全开发原则。

02

输入验证与清理

防止注入的第一道防线,Joi、express-validator 参数校验。

03

SQL 注入防御

参数化查询 & ORM 安全实践,Sequelize/TypeORM 配置。

04

NoSQL 注入攻击

MongoDB 注入原理与防御,使用 mongo-sanitize 库。

05

命令注入防御

child_process 安全使用,避免 exec / eval 危险操作。

06

跨站脚本攻击 (XSS)

反射、存储、DOM 型 XSS 原理与防御,Helmet & DOMPurify。

07

跨站请求伪造 (CSRF)

CSRF 攻击原理,csurf / csrf-csrf Token 验证。

08

身份认证安全

JWT 安全实践,Token 存储策略,刷新令牌机制。

09

会话管理安全

Express-session 安全配置,Cookie 属性 Secure/HttpOnly/SameSite。

10

密码安全存储

bcrypt vs argon2 哈希算法,盐值使用与密码策略。

11

文件上传安全

文件类型校验、大小限制、路径遍历防御,multer 配置。

12

路径遍历攻击

防止目录遍历,path.resolve 和绝对路径限制。

13

HTTP 参数污染

参数合并攻击原理,使用 qs 库的安全配置。

14

安全 HTTP 头配置

Helmet 中间件设置 CSP、HSTS、X-Frame-Options 等。

15

CORS 跨域安全

同源策略与 CORS 配置,白名单机制与预检请求。

16

速率限制与暴力破解

express-rate-limit / express-brute 防止暴力攻击。

17

日志安全

敏感信息脱敏,日志注入防御,winston/pino 安全配置。

18

依赖安全

npm audit、Snyk/WhiteSource 扫描,package-lock.json 重要性。

19

环境变量安全

dotenv 配置,.gitignore 保护,密钥管理最佳实践。

20

错误处理安全

避免信息泄露,自定义错误类,全局错误中间件设计。

21

安全编码规范

ESLint 安全规则,eslint-plugin-security,代码审查清单。

22

HTTPS 与 TLS 配置

Node.js HTTPS 服务器配置,证书管理,HSTS 强制 HTTPS。

23

WebSocket 安全

WebSocket 认证与授权,消息校验,防止跨站点劫持。

24

GraphQL 安全

查询深度限制,速率限制,认证授权,防止信息泄露。

25

微服务安全

服务间认证,API 网关安全,JWT 在微服务中的传递。

26

容器安全

Dockerfile 安全最佳实践,非 root 用户运行,镜像扫描。

27

安全测试

OWASP ZAP 使用,自动化安全测试,渗透测试基础。

28

事件循环与拒绝服务

防止事件循环阻塞,pm2 集群模式,内存泄漏检测。

29

安全响应与应急

安全事件响应流程,漏洞披露策略,补丁管理。

30

综合实战

构建安全 RESTful API,从设计到部署全流程安全加固。

🧸 每一课都像蜡笔一样色彩鲜明 · 安全从小养成