全部学科
Python全栈
python
NodeJS全栈
nodejs
📝 1 篇文章 27 道配套习题

NodeJS安全与稳定性专题

专题说明

本专题聚焦Node.js生产级应用的安全防护与稳定性保障实践,涵盖进程管理、内存优化、依赖安全审计、Web安全防护、HTTPS/TLS配置及API速率限制六大核心领域,帮助开发者构建安全可靠的Node.js服务。

学习目标

  1. 掌握PM2进程管理工具的核心功能与集群部署策略
  2. 理解Node.js内存管理机制,学会检测与修复内存泄漏
  3. 使用npm audit进行依赖安全审计,防范供应链攻击
  4. 实施XSS、CSRF等Web安全防护措施
  5. 配置HTTPS服务器与TLS安全参数
  6. 实现API速率限制与暴力破解防护

学习内容

本专题涵盖以下知识点:

  • 进程管理与稳定性:PM2守护进程、cluster负载均衡、graceful shutdown、日志管理
  • 内存泄漏检测与优化:内存泄漏原因分析、Chrome DevTools诊断、heapdump使用、clinic.js工具
  • 依赖安全管理:npm audit扫描、漏洞修复策略、CI安全检查集成
  • Web安全防护:XSS攻击类型与防护、CSRF防护机制、Cookie安全配置
  • HTTPS与TLS配置:SSL证书配置、TLS版本选择、加密套件配置、HSTS设置
  • 速率限制与防暴力破解:express-rate-limit使用、分布式限制方案、登录防护策略

学习建议

  1. 先掌握PM2基础用法,理解进程守护原理
  2. 结合实际项目排查内存泄漏问题
  3. 在CI流程中集成npm audit安全检查
  4. 重点理解XSS/CSRF攻击原理,而非死记防护代码
  5. 生产环境必须启用HTTPS和速率限制
  6. 建议按知识点模块逐一学习,每个模块完成后做相关题目巩固

📝 配套习题(26 题)

💡 参考答案在文末
判断题
1

npm audit命令用于扫描项目依赖的安全漏洞,并报告漏洞严重程度和修复建议。

A

B

2

速率限制默认使用客户端IP作为限制key,但同一IP下多个用户可能共享限制额度。

A

B

3

速率限制触发后,标准HTTP响应状态码是429 Too Many Requests。

A

B

4

PM2的reload命令使用graceful shutdown机制,确保在重启过程中不会丢失正在处理的请求。

A

B

5

PM2提供日志管理功能,支持日志分割、日志合并和实时日志查看。

A

B

6

XSS攻击窃取用户Cookie等敏感信息,而CSRF攻击利用用户身份执行恶意操作。

A

B

7

npm audit默认只扫描package.json中声明的直接依赖,不扫描间接依赖(依赖的依赖)。

A

B

8

npm audit fix --force命令会强制升级依赖版本以修复漏洞,可能导致应用出现兼容性问题。

A

B

单选题
9

npm audit报告中不包含以下哪项信息?

A

漏洞严重等级(severity)

B

漏洞修复建议(recommendation)

C

受影响依赖路径(path)

D

漏洞修复代码补丁

10

Node.js创建HTTPS服务器需要提供哪些必要配置?

A

只需要SSL证书文件

B

SSL证书文件和私钥文件

C

SSL证书文件和CA证书

D

只需要域名

11

PM2的cluster模式使用什么机制实现负载均衡?

A

应用层轮询分发

B

Round-Round调度算法

C

操作系统层面的负载均衡

D

反向代理分发

12

使用Chrome DevTools分析Node.js内存泄漏时,以下哪个视图最适合对比两个时间点的内存状态?

A

Summary视图

B

Comparison视图

C

Containment视图

D

Statistics视图

13

PM2作为Node.js进程管理器,其核心功能不包括以下哪项?

A

进程守护与自动重启

B

负载均衡(cluster模式)

C

代码热更新(reload)

D

自动修复内存泄漏

14

以下哪种XSS攻击类型通过URL参数注入恶意脚本,需要诱导用户点击链接才能触发?

A

存储型XSS(Stored XSS)

B

反射型XSS(Reflected XSS)

C

DOM型XSS(DOM-based XSS)

D

CSS型XSS

15

CSRF攻击的核心原理是什么?

A

注入恶意脚本执行

B

利用用户已登录的身份伪造请求

C

破解用户密码获取账户

D

拦截网络流量窃取数据

16

分布式微服务架构中,本地内存速率限制存在什么问题?

A

性能开销过大

B

各节点限制不统一,总限制超出预期

C

配置复杂难以维护

D

无法统计请求总数

17

以下哪项不是Node.js应用中常见的内存泄漏原因?

A

未清理的全局变量或缓存

B

未关闭的事件监听器

C

未释放的闭包引用

D

正常的HTTP请求处理

18

Express应用实现API速率限制,最常用的中间件是?

A

express-session

B

express-rate-limit

C

express-security

D

express-throttle

19

生产环境Node.js HTTPS服务器应使用哪个TLS版本以确保安全性?

A

TLS 1.0

B

TLS 1.1

C

TLS 1.2

D

SSL 3.0

多选题
20

Node.js HTTPS服务器安全配置应包括以下哪些措施?

A

使用TLS 1.2或更高版本

B

启用HSTS(HTTP Strict Transport Security)

C

配置安全的加密套件(cipher suites)

D

HTTP自动重定向HTTPS

E

使用自签名证书

21

防范XSS攻击的有效措施包括哪些?

A

对用户输入进行HTML编码

B

使用Content Security Policy(CSP)

C

设置Cookie的httpOnly属性

D

禁用JavaScript执行

E

使用XSS过滤库(如xss-filter)

22

防范登录接口暴力破解攻击的有效措施包括哪些?

A

严格速率限制(如5次/小时)

B

账户锁定机制

C

CAPTCHA验证码

D

记录登录失败日志

E

使用弱密码策略

23

PM2的ecosystem配置文件(ecosystem.config.js)支持哪些配置项?

A

apps数组定义多个应用

B

实例数量(instances)设置

C

环境变量(env)配置

D

watch模式启用

E

内存限制(max_memory_restart)

24

Node.js应用内存泄漏检测可以使用以下哪些工具?

A

Chrome DevTools Memory面板

B

node-memwatch模块

C

heapdump模块

D

clinic.js工具套件

E

npm audit

填空题
25

使用 ____________ 获取免费SSL证书,常用工具 ____________ 。证书有效期 ____________ 天,需要定期 续期 。证书类型包括 DV (域名验证)、OV(组织验证)、EV(扩展验证)。Let's Encrypt提供 DV 类型证书,适合大多数网站使用。

26

Node.js默认 ____________ 引擎内存限制约为 ____________(64位系统)。可通过 ____________ 参数调整内存上限,如 --max-old-space-size=4096 设置为4GB。生产环境建议根据实际内存使用情况合理设置,避免 内存溢出 导致进程崩溃。

参考答案
1.正确 2.正确 3.正确 4.正确 5.正确 6.正确 7.错误 8.正确 9.D 10.B 11.C 12.B 13.D 14.B 15.B 16.B 17.D 18.B 19.C 20.A;B;C;D 21.A;B;C;E 22.A;B;C;D 23.A;B;C;D;E 24.A;B;C;D 25.Let's Encrypt;certbot;90 26.V8;1.4GB;--max-old-space-size
想在手机上练习这套专题?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一个专题 NodeJS全局对象专题
下一个专题 → NodeJS异步编程基础专题
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码