抓包与 XSS 防护

共 70 题
#

1. WebSocket 帧的抓包与调试

A DevTools Frames 面板可查看帧类型与内容,深层次抓包需 TLS 解密 ✓ 正确答案
B WebSocket 帧无法被抓包
C Wireshark 无需解密即可查看 WSS 内容
D Frames 面板只能查看握手
#

2. Chrome DevTools Back-forward Cache (bfcache) 调试与失效原因的工程价值

A DevTools 可诊断 bfcache 失效原因(如 unload 监听器、WebSocket),修复后提升导航性能 ✓ 正确答案
B bfcache 只影响前进,不影响后退
C bfcache 无法被调试
D unload 监听器不影响 bfcache
#

3. fetch/axios 封装,拦截器、统一错误处理与 Token 刷新队列(401 自动刷新与请求挂起)

A 每个 401 都独立刷新 token
B 拦截器与 token 刷新无关
C 401 时用单例刷新队列挂起并发请求,刷新后重放,避免重复刷新 ✓ 正确答案
D 401 应直接跳登录
#

4. 请求重试与指数退避、超时与取消(AbortController)策略设计与幂等性保障

A 所有请求都应无条件重试
B 用指数退避+抖动重试,且仅对幂等请求安全重试,非幂等需额外保障 ✓ 正确答案
C 重试不会造成副作用
D 超时与重试无关
#

5. 并发请求的去重、竞态(race condition)与防抖节流在搜索/自动补全场景的边界

A 用防抖减少请求、请求序号/Abort 防竞态,保证最新结果正确 ✓ 正确答案
B 竞态无需处理,后发结果自然正确
C 去重与竞态无关
D 节流会延迟响应但保证最新
#

6. GraphQL/tRPC 与 REST 在类型安全与缓存上的取舍及 Apollo Client 归一化缓存的工程价值

A GraphQL/tRPC 提供类型安全,Apollo 归一化缓存按实体 ID 管理,解决 GraphQL 客户端缓存 ✓ 正确答案
B GraphQL 的 HTTP 缓存比 REST 简单
C tRPC 无类型安全
D Apollo 缓存只用于 REST
#

7. TanStack Query/SWR 的缓存键设计、失效策略与乐观更新的工程实践

A 缓存键随意设计不影响正确性
B 失效策略与缓存无关
C 用稳定 queryKey 建模、invalidate 失效、乐观更新提升体验并回滚 ✓ 正确答案
D 乐观更新无需回滚
#

8. 请求取消(AbortController)在路由切换/组件卸载时的自动清理与内存泄漏防护

A 卸载后请求继续执行即可
B 组件卸载时用 AbortController 取消请求,避免状态更新与内存泄漏 ✓ 正确答案
C 请求取消与竞态无关
D AbortError 无需特殊处理
#

9. 请求层的中介者(Middleware)模式,日志、鉴权、错误上报与重试的可组合设计

A 中间件只能做一件事,无法组合
B 中间件会破坏关注点分离
C 中间件与拦截器完全不同
D 中间件把日志、鉴权、重试等横切关注点封装为可组合单元,按序串联 ✓ 正确答案
#

10. GraphQL 的 persisted query 与 query whitelisting 在生产环境的安全与性能价值

A persisted query 让客户端发送完整查询
B persisted query 用 hash 发送查询并预注册,whitelisting 限制可执行查询,提升安全与性能 ✓ 正确答案
C whitelisting 允许任意查询
D persisted query 与安全无关
#

11. DNS over HTTPS(DoH)与 DNS over TLS(DoT)

A DoH 走 853 端口,DoT 走 443
B DoH 与隐私无关
C 两者都不加密 DNS
D DoH 用 HTTPS 封装(隐蔽),DoT 用 TLS 专用端口,都加密 DNS 防劫持 ✓ 正确答案
#

12. React/Vue 的 dangerouslySetInnerHTML/v-html 在服务端渲染或富文本的 XSS 工程取舍

A dangerouslySetInnerHTML 会自动转义 HTML,无风险
B 它们直接渲染 HTML,不可信内容需先消毒(DOMPurify)并配合 CSP/Trusted Types ✓ 正确答案
C 富文本渲染无需消毒
D v-html 与 React 的 dangerouslySetInnerHTML 机制不同
#

13. Trusted Types(require-trusted-types-for script)

A 它禁用所有 DOM 操作
B 它强制 DOM 注入必须用 Trusted Types 策略创建,从机制上防 DOM XSS ✓ 正确答案
C 它只影响服务端渲染
D 它无需 CSP 配合
#

14. JSONP 与 JSON Hijacking 的历史漏洞与现代 CORS 的替代

A JSONP 是现代安全的跨域方案
B JSONP 有 JSON Hijacking 与 XSS 风险,现代用 CORS + 正确 Content-Type/CORB 替代 ✓ 正确答案
C JSON Hijacking 与 JSONP 无关
D CORS 无法替代 JSONP
#

15. DOMPurify 的 hook 与 sanitize 配置在富文本编辑器的应用

A DOMPurify 只能净化,不能配置
B hook 无法扩展规则
C sanitize 配置白名单标签/属性,hook 提供自定义处理,用于富文本安全净化 ✓ 正确答案
D 富文本无需净化
#

16. 上下文相关输出编码(HTML、属性、URL、JavaScript、CSS)

A 所有上下文用同一种编码即可
B 框架自动处理所有上下文编码
C 编码与 XSS 无关
D HTML、属性、URL、JS、CSS 上下文编码规则不同,必须按输出位置匹配 ✓ 正确答案
#

17. 反射型、存储型、DOM 型 XSS 的区别与攻击向量

A 反射型 XSS 会持久化存储
B DOM 型 XSS 经过服务端
C 反射型由服务端回显触发、存储型持久化、DOM 型在客户端 DOM 操作触发 ✓ 正确答案
D 三者攻击向量完全相同
#

18. CSP 的 script-src/object-src/frame-ancestors 与 DPoP(RFC 9449)的现代取舍

A CSP 与 DPoP 功能相同
B script-src 限制脚本、object-src 禁插件、frame-ancestors 防点击劫持,DPoP 防 token 重放 ✓ 正确答案
C frame-ancestors 限制脚本来源
D DPoP 与 token 安全无关
#

19. CORP/COEP 的跨域资源策略 在 XSS/CSRF 防护的协作

A COEP 放宽跨源资源加载
B CORP/COEP 与安全无关
C CORP 限制资源被跨源嵌入,COEP 强制声明,减少跨源注入与数据泄露 ✓ 正确答案
D CORP 只限制 Cookie
#

20. Markdown 渲染(marked、markdown-it)

A 需禁用原始 HTML、协议白名单并 DOMPurify 消毒,防止 XSS ✓ 正确答案
B Markdown 渲染天然安全,无 XSS
C 危险链接协议(javascript:)无需处理
D 渲染结果不能消毒
#

21. Prototype Pollution 在前端 XSS 攻击链的应用

A 原型污染只影响单个对象
B 合并用户输入是安全的
C 原型污染与 XSS 无关
D 原型污染通过不安全合并污染 Object.prototype,可构成 XSS/逻辑绕过攻击链 ✓ 正确答案
#

22. HTTP/2 的 Server Push 已废弃,被 103 Early Hints 取代的取舍

A Server Push 仍被支持
B Early Hints 是服务端推送
C Server Push 因无法感知缓存被弃,103 Early Hints 让浏览器主动请求关键资源 ✓ 正确答案
D Early Hints 与缓存无关
#

23. Trusted Types 与 CSP 的协同防护

A CSP 限制脚本来源,Trusted Types 强制 DOM 注入类型安全,协同防 XSS ✓ 正确答案
B Trusted Types 与 CSP 互斥
C CSP 无法启用 Trusted Types
D 两者只能用于服务端
#

24. Sanitize API(DOMPurify)与风险(Mutation XSS)

A mXSS 利用解析-序列化-再解析的结构变化绕过 sanitizer ✓ 正确答案
B 净化后的 HTML 永远安全
C mXSS 与解析器无关
D DOMPurify 无 mXSS 风险
#

25. OWASP DOM XSS 测试用例在前端审计清单的工程价值

A DOM XSS 用例只用于学习,无工程价值
B DOM XSS 无法被测试
C 审计清单无法自动化
D 把 OWASP DOM XSS 用例纳入审计清单可系统性检测 DOM 注入并防回归 ✓ 正确答案
#

26. 浏览器 DevTools Network 面板的瀑布流分析

A 瀑布流只显示总耗时,无阶段信息
B 瀑布流分解队列、DNS、连接、TTFB、下载等阶段,用于定位性能瓶颈 ✓ 正确答案
C 瀑布流无法分析资源大小
D TTFB 长与服务器无关
#

27. WireShark/Charles Proxy 在 HTTPS 抓包的 CA 证书与中间人原理

A HTTPS 抓包无需解密即可查看内容
B 代理用自签 CA 让客户端信任并解密转发(MITM),Wireshark 用密钥日志解密 ✓ 正确答案
C CA 证书与抓包无关
D 只能在服务器端抓包
#

28. HTTP Alt-Svc 与 Alt-Used 在服务发现与协议升级的应用

A Alt-Svc 声明替代服务/协议,客户端据此升级(如 HTTP/3) ✓ 正确答案
B Alt-Svc 是客户端请求头
C Alt-Svc 与协议升级无关
D Alt-Used 是服务器响应头
#

29. Throttling 网络节流的复现设置

A 节流只能模拟离线
B 节流可设置带宽/延迟/丢包,复现弱网场景测试性能与健壮性 ✓ 正确答案
C 节流无法自定义
D 节流与性能测试无关
#

30. HAR 文件的导出与跨环境对比

A HAR 只记录请求 URL
B HAR 不含敏感信息,可随意分享
C HAR 无法导出
D HAR 记录完整请求/响应信息,可跨环境对比分析性能差异 ✓ 正确答案
#

31. TCP Fast Open(TFO)在减少握手 RTT 的服务端支持

A TFO 在 TCP 握手中携带数据,减少一个 RTT,需服务端支持 ✓ 正确答案
B TFO 会增加握手 RTT
C TFO 无需服务端配置
D TFO 与 TLS 无关
#

32. CDN 节点故障的诊断方法

A 只能依赖 CDN 厂商
B 故障一定在 CDN
C 用 dig/curl/ping/对比源站分层排查,定位是节点、网络还是回源问题 ✓ 正确答案
D 无需检查 DNS 解析
#

33. pcap/Wireshark 在端到端网络抓包调试的工程价值

A Wireshark 只能看 HTTP 层
B Wireshark 可分析 TCP 重传、丢包、TLS 握手等底层网络问题 ✓ 正确答案
C Wireshark 无法解析 TLS
D 抓包无需关心网络层
#

34. chrome://net-export 与 netlog 在生产环境的网络问题分析

A net-export 导出浏览器网络日志,用 netlog-viewer 分析定位连接/DNS/代理/TLS 问题 ✓ 正确答案
B netlog 只记录页面 DOM
C netlog 无法导出
D netlog 与网络问题无关
#

35. whistle/Charles/Proxyman 在本地 HTTPS 解密的工程取舍

A Charles 完全免费
B 三者都无法解密 HTTPS
C whistle 规则驱动、Charles 全面跨平台、Proxyman 面向 macOS,都需 CA 证书解密 HTTPS ✓ 正确答案
D whistle 无法跨平台
#

36. Charles Map Local / Map Remote 在本地替换线上资源与 SSR 联调的工程价值

A Map Local 替换本地文件、Map Remote 重定向远程,用于本地调试与 SSR 联调 ✓ 正确答案
B Map Local 把请求重定向到远程
C 两者都只能 mock
D Map Local 无法替换接口
#

37. QUIC 0-RTT 与 1-RTT 在 CDN/移动弱网环境的兼容性踩坑与版本回落策略

A QUIC 在所有环境完美可用
B QUIC 无需兼容性考虑
C 0-RTT 无任何风险
D QUIC 0-RTT 省 RTT 但有重放风险,UDP 可能被阻断,需回退 HTTP/2 兜底 ✓ 正确答案
#

38. 请求优先级(fetch priority、AbortSignal 嵌套)在高并发场景下的调度策略

A fetchpriority 提示优先级,AbortSignal.any() 组合取消源,用于高并发调度与取消 ✓ 正确答案
B fetchpriority 是浏览器强制的优先级
C AbortSignal 无法嵌套
D 优先级与调度无关
#

39. SVG/HTML 内嵌 SVG 与 CSS url() 注入的边界

A SVG 可携带脚本需净化,CSS url() 需限制协议(禁 javascript:) ✓ 正确答案
B SVG 内嵌脚本天然安全
C CSS url() 无法注入
D 两者都无需防御
#

40. Service Worker 的 XSS 注入与 source map 泄漏

A 两者与安全无关
B source map 可以随意发布
C SW 无需保护
D SW 被注入可接管请求,生产 source map 应控制访问,防源码泄露 ✓ 正确答案
#

41. Mutation XSS(mXSS)的原理与防御

A mXSS 无法防御
B 用最新 sanitizer、避免二次解析、受控渲染与 Trusted Types 防 mXSS ✓ 正确答案
C 一次性净化即可永绝 mXSS
D mXSS 与解析器无关
#

42. HTML 转义与安全上下文(HTML、Attribute、JS、URL)

A HTML 实体编码适用于所有上下文
B HTML、Attribute、JS、URL 上下文编码规则不同,必须匹配输出位置 ✓ 正确答案
C 转义与上下文无关
D 框架自动处理所有上下文
#

43. Content Security Policy(CSP)

A CSP 只能限制图片
B CSP 白名单限制脚本/样式/连接来源,防 XSS,用 nonce/hash 与 report-only 部署 ✓ 正确答案
C CSP 与 XSS 无关
D CSP 无法限制数据外传
#

44. DOMPurify 的钩子(hooks)在自定义清理规则的工程扩展

A 钩子只能做净化前处理
B 钩子无法定制属性处理
C 钩子(uponSanitizeElement/Attribute、before/after)可自定义清理规则 ✓ 正确答案
D 钩子会破坏所有安全
#

45. URL 协议白名单(javascript:、data:)在用户输入的工程防御

A 危险协议(javascript:)无需过滤
B data: 协议总是安全的
C 用协议白名单只允许 http/https/mailto 等,拒绝 javascript:/data:,防 XSS ✓ 正确答案
D 前端校验即可,无需后端
#

46. 模板注入(Template Injection)在 SSR 框架(Angular、Vue)

A 用户输入可作为模板表达式安全计算
B 模板注入与 SSR 无关
C 把用户输入当作模板表达式/动态编译会触发模板注入,应避免输入当代码 ✓ 正确答案
D 插值表达式天然安全执行任意代码
#

47. XSS 在第三方 iframe(嵌入广告)的工程隔离策略

A 第三方 iframe 可自由访问父页面
B sandbox 会增强 iframe 权限
C 用 sandbox 限制 iframe 权限、CSP 限制来源、postMessage 受控通信隔离 ✓ 正确答案
D 第三方 iframe 无需隔离
#

48. Trusted Types 的 createPolicy 在框架集成的现代应用

A Trusted Types 只能用于服务端
B React 完全支持 Trusted Types
C createPolicy 与框架无关
D Angular 默认启用 Trusted Types,createPolicy 定义可信 DOM 注入 ✓ 正确答案
#

49. XSS Payload 在客户端绕过(WAF、CSP)的工程排查

A WAF 与 CSP 无法被绕过
B CSP 严格配置就不会被绕过
C 编码与绕过无关
D 编码混淆、mutation、CSP 配置漏洞(unsafe-inline)可绕过,需审计输出点与测试 ✓ 正确答案
#

50. DOMPurify 与 Trusted Types 协作在现代工程的工程价值

A DOMPurify 净化内容,Trusted Types 强制注入路径,组合实现纵深防御 ✓ 正确答案
B 两者功能重复
C Trusted Types 已取代 DOMPurify
D 两者只能二选一
#

51. JSON 注入(JSON Hijacking)的现代防御策略

A 用 CORS + 正确 Content-Type + nosniff/CORB + 安全 Cookie 防御 JSON 劫持 ✓ 正确答案
B 用 JSONP 最安全
C 前缀注入无法防劫持
D 现代仍推荐 JSONP
#

52. innerHTML、outerHTML、insertAdjacentHTML 的 XSS 风险与现代替代

A innerHTML/outerHTML/insertAdjacentHTML 解析 HTML 有 XSS 风险,用 createElement/textContent 替代 ✓ 正确答案
B innerHTML 自动转义,无风险
C textContent 会解析 HTML
D 所有 DOM API 风险相同
#

53. Trusted Types 的浏览器支持与 polyfill(DOMPurify)

A 所有浏览器都支持 Trusted Types
B 不支持的环境无需防护
C DOMPurify 无法兜底
D Trusted Types 支持有限,用 DOMPurify 净化兜底,检测 trustedTypes 可用性 ✓ 正确答案
#

54. XSS 在 SVG 与 XML 解析中的工程攻击向量

A SVG 可内嵌脚本/foreignObject/事件,XML 有 XXE 风险,需净化与禁用外部实体 ✓ 正确答案
B SVG 无法执行脚本
C XML 外部实体无风险
D 上传 SVG 无需净化
#

55. 前端富文本编辑器(Tiptap、Slate)的 XSS 防御与现代应用

A 用 schema 白名单 + DOMPurify 净化 + Trusted Types 渲染,防富文本 XSS ✓ 正确答案
B 富文本输出天然安全
C 富文本无需净化
D onerror 属性无风险
#

56. CSP 的 nonce-source 与 hash-source 在内联脚本与现代构建产物的工程取舍

A nonce 静态不变,hash 每次变化
B nonce 允许动态内联脚本(需服务端随机),hash 允许静态内联脚本(内容变需更新) ✓ 正确答案
C 两者都禁止内联脚本
D hash 需要服务端随机生成
#

57. CSP Level 3 的 strict-dynamic 在动态脚本加载信任传递的现代工程价值

A strict-dynamic 放宽所有域名
B strict-dynamic 会扩大攻击面
C strict-dynamic 与 nonce 无关
D strict-dynamic 让 nonce/hash 脚本与动态加载的脚本信任传递,避免通配域名 ✓ 正确答案
#

58. DOM Clobbering(id 属性污染与全局变量冲突)

A id 属性无法影响全局变量
B 注入 id/name 元素可覆盖全局变量,导致逻辑绕过或 XSS,需净化与保护 ✓ 正确答案
C DOM Clobbering 与服务端无关
D 全局变量是安全的判断依据
#

59. MutationObserver 在检测 DOM 注入恶意内容的运行时监控价值

A MutationObserver 能完全阻止恶意脚本执行
B MutationObserver 事后监控 DOM 变化,适合检测/审计,预防靠 CSP/Trusted Types ✓ 正确答案
C MutationObserver 无法检测 DOM 变化
D 检测到注入即可阻止执行
#

60. Service Worker 的 unsafe-eval 与 CSP 在 PWA 字符串编译的边界

A eval 在 CSP 下无需限制
B SW 不受 CSP 约束
C unsafe-eval 提升安全性
D 应避免 eval 等字符串编译,CSP 禁 unsafe-eval 防 XSS,用安全替代 ✓ 正确答案
#

61. eval()/Function()/setTimeout("string") 在 CSP unsafe-eval 禁用后的代码动态执行方案

A eval 仍可执行
B setTimeout 字符串不受 CSP 限制
C 用传函数、JSON.parse、配置映射、动态 import 替代 eval/Function/setTimeout(string) ✓ 正确答案
D 动态执行必须用 eval
#

62. 模板引擎(Handlebars、EJS、Mustache)

A 模板引擎默认不转义
B 模板引擎无法转义
C 原始输出天然安全
D 模板引擎默认转义,但原始输出({{{}}}/<%- %>)不转义,用于不可信数据会 XSS ✓ 正确答案
#

63. Sanitizer API(Element.setHTML)相比 DOMPurify 在浏览器原生 XSS 防护的工程价值

A Sanitizer API 已完全取代 DOMPurify
B setHTML 是浏览器原生净化,性能好但支持有限,DOMPurify 成熟跨浏览器兜底 ✓ 正确答案
C Sanitizer API 无法净化
D 两者功能完全不同
#

64. SVG 标签中的 <script>、<foreignObject> 与数学公式(MathML)的 XSS 攻击面

A SVG 的 foreignObject 无法嵌入 HTML
B MathML 无 XSS 风险
C SVG script/foreignObject 与 MathML 可构造 XSS/mXSS,需净化器禁用危险元素 ✓ 正确答案
D SVG 脚本无法执行
#

65. React 19 的 Server Components 默认不暴露 client 边界对 XSS 攻击面的工程价值

A Server Components 默认不暴露 client 边界,减少客户端 XSS 面,但服务端输出仍需净化 ✓ 正确答案
B Server Components 彻底消除 XSS
C Server Components 与 XSS 无关
D Server Components 增加攻击面
#

66. CSP 的 report-uri/report-to 与 Report-Only 模式在 CSP 部署阶段的渐进实施策略

A Report-Only 会阻止违规资源
B Report-Only 与强制执行相同
C report-uri 是全新的 Reporting API
D 先 Report-Only 收集违规、调整策略,再强制并持续监控,安全部署 CSP ✓ 正确答案
#

67. DOMPurify 4.x 在 Angular、React、Vue 的 SSR 场景下作为 server-side sanitizer 时,如何避免在 hydration 后 client 端 sanitizer 与 server 端规则不一致导致的 XSS 漏洞——sanitize 配置在 SSR→CSR 传递链上应如何序列化与签名

A 共享 sanitize 配置并在 SSR 输出签名,客户端校验签名信任,避免 hydration 不一致 XSS ✓ 正确答案
B server 与 client sanitizer 规则可任意不同
C 签名与净化无关
D hydration 时二次净化是安全的
#

68. Trusted Types policy 创建的命名(命名空间)

A policy 名字随意且不受控
B 同名 policy 可重复创建
C CSP 的 trusted-types 指令可白名单限制允许的 policy 名,按用途命名实现细粒度控制 ✓ 正确答案
D 命名与 CSP 无关
#

69. Mutation XSS(mXSS)通过浏览器 HTML 解析器的 innerHTML→序列化的非线性变换绕过 sanitizer——React/Vue 的 reconciliation 流程、Trusted Types 与 DOMPurify 在哪些路径上仍存在 mXSS 攻击面

A 净化后内容二次解析不会触发 mXSS
B 净化后内容被序列化再解析会触发 mXSS,需避免二次解析、用最新 DOMPurify 与 Trusted Types 兜底 ✓ 正确答案
C Trusted Types 完全解决 mXSS
D React/Vue 的 dangerouslySetInnerHTML 无 mXSS 面
#

70. X-Content-Type-Options: nosniff 如何关闭浏览器 MIME 嗅探并阻断“伪装成图片/文本的 HTML 被当作脚本执行”的存储型 XSS 链路,nosniff 对 script/style 资源 MIME 不匹配时的拦截行为,以及部署时应配套哪些正确的 Content-Type 判断标准?

A nosniff 会保持 MIME 嗅探
B 无需设置正确 Content-Type
C nosniff 与 XSS 无关
D nosniff 关闭嗅探,阻断伪装 HTML 被当脚本执行,script/style 的 MIME 不匹配会被拦截 ✓ 正确答案