通信与沙箱隔离

共 37 题
#

1. Storage Access API 在 SSO/IdP 的工程价值

A Storage Access API 让第三方 iframe 在用户许可后访问自身 Cookie,是隐私策略下维持跨站 SSO 会话的关键通道 ✓ 正确答案
B Storage Access API 可以无条件访问第一方 Cookie
C 请求存储访问权无需用户交互
D 该 API 只在 Safari 中需要,其他浏览器自动放行
#

2. Trusted Types 在子应用 DOM 注入的工程价值

A Trusted Types 与 CSP 完全无关
B Trusted Types 可以拦截所有类型的 XSS,包括 CSS 注入
C 启用 Trusted Types 后第三方库无需适配
D Trusted Types 通过 CSP 强制 DOM 注入点只接收策略对象,让子应用动态 DOM 操作统一收口并受审计 ✓ 正确答案
#

3. qiankun 的 LegacySandbox(基于 Proxy 的单实例沙箱)与 ProxySandbox(多实例沙箱)的历史演进与适用场景

A ProxySandbox 在失活时需要全量回滚真实 window
B LegacySandbox 支持多子应用同屏并存
C LegacySandbox 是单实例的代理记录回滚沙箱,ProxySandbox 以独立值表支持多实例并存,按并存需求选择 ✓ 正确答案
D 两种沙箱都不依赖 Proxy
#

4. 微前端共享状态,Pinia/Redux 切片、SharedWorker、URL/Storage 在跨子应用的工程价值

A localStorage 支持实时变更通知
B SharedWorker 可以跨任意域共享数据
C store 切片解决同页实时共享,SharedWorker 解决跨 Tab 共享,URL/Storage 适合可序列化低频状态,按维度选型 ✓ 正确答案
D store 切片可以跨页面保持响应式共享
#

5. 主应用 -> 子应用 CustomEvent/postMessage/Props 三种通信方案的工程取舍

A Props 方案适合广播类松散消息
B postMessage 支持同步传输函数
C CustomEvent 自带类型校验
D 初始化与回调用 Props,同域广播用 CustomEvent,跨域传输用 postMessage,按场景组合分工 ✓ 正确答案
#

6. 基于 CustomEvent、SharedWorker、BroadcastChannel 的通信方案

A CustomEvent 限页面内同步,BroadcastChannel 同源跨 Tab 广播,SharedWorker 可跨 Tab 共享状态与计算 ✓ 正确答案
B BroadcastChannel 可以跨域通信
C SharedWorker 的消息无需序列化,直接引用
D CustomEvent 可以跨 Tab 触发
#

7. 微前端路由 activeRule 与子应用生命周期对齐

A activeRule 只能使用路径前缀匹配
B activeRule 按路由匹配触发子应用加载与挂载,需保证规则不重叠并处理切换竞态 ✓ 正确答案
C 多个子应用可以共享完全相同的激活规则
D 保活应用在路由离开时仍执行真实卸载
#

8. iframe postMessage 的 Origin 校验与序列化边界

A 接收端只需信任 event.source 即可
B postMessage 需发送端 targetOrigin 与接收端 origin 白名单双重校验,结构化克隆不支持函数与 DOM 节点 ✓ 正确答案
C 结构化克隆可以传输函数与 DOM 节点
D targetOrigin 设为 '*' 是最安全的做法
#

9. Event Bus(mitt/EventEmitter3)在跨子应用事件的工程价值

A mitt 的 emit 是异步派发的
B Event Bus 自动清理应用卸载后的监听
C 事件总线适合承载共享状态
D Event Bus 提供轻量同步发布订阅,跨应用广播需命名空间化并确保卸载时清理监听 ✓ 正确答案
#

10. 前端消息总线的事件命名空间如何设计避免冲突,事件生命周期与清理怎么做?

A 监听器不需要清理,浏览器自动回收
B 事件名可以随意定义,靠约定避免冲突
C 事件按「域.模块.动作」层级命名并集中登记,unmount 时按域批量清理监听并检测泄漏 ✓ 正确答案
D 命名空间只需要前缀,无需层级
#

11. Passkeys 在 SSO/IdP 的工程价值

A Passkey 认证过程可以被中间人转发
B Passkeys 的私钥保存在服务端
C Passkeys 基于 WebAuthn 公钥凭证,私钥不出设备且绑定站点,为 SSO 提供免密且防钓鱼的认证 ✓ 正确答案
D Passkeys 只是密码的加密存储形式
#

12. CORP/COEP 的跨域资源策略 与 DPoP(RFC 9449)

A CORP 是页面级的嵌入策略
B COEP 不会影响未配置 CORS 的第三方资源
C DPoP 签名与令牌内容无关,仅用于调试
D CORP 声明资源可嵌入方,COEP 要求跨源资源显式允许,DPoP 以私钥签名证明令牌持有身份防盗用 ✓ 正确答案
#

13. 全局状态污染与 tear-down 不彻底导致的内存泄漏应如何在工程上预防

A 组件卸载后闭包引用自动释放
B 用登记表统一登记卸载清理项、依赖注入替代全局持有,并以快照与堆监控检测泄漏 ✓ 正确答案
C 全局变量泄漏只影响开发环境
D 泄漏无法检测,只能靠经验排查
#

14. qiankun 的 globalState 突变通知在大型应用中引发的过度 re-render 应如何用选择器剪裁

A 高频变化的状态也应放入 globalState 保证实时性
B globalState 变更只会通知关心的子应用
C 订阅回调中每次 setState 不会引发多余渲染
D globalState 全量广播引发过度渲染,通过选择器订阅、状态分片与字段版本号剪裁通知粒度 ✓ 正确答案
#

15. postMessage 在跨域子应用通信中的 message event 监听冲突与命名空间约定

A 所有 postMessage 消息都会自动路由到对应应用
B 监听 message 时只需判断事件类型即可
C message 事件汇聚所有窗口消息,需通过类型命名空间、origin 白名单与协议版本化区分处理 ✓ 正确答案
D message 监听器无需在应用切换时清理
#

16. SharedWorker 作为跨子应用状态共享层的工程边界与回退方案

A 页面刷新后 SharedWorker 状态必然丢失
B SharedWorker 可以跨域共享状态
C SharedWorker 限同源且需管理连接与重连,不可用时降级为 BroadcastChannel 或服务端中转 ✓ 正确答案
D SharedWorker 无需心跳与错误处理
#

17. CustomEvent 与 EventTarget 在子应用边界通信中的实际价值

A 事件中心必须绑定在 window 上才能工作
B CustomEvent 的 detail 会序列化传输,有性能损耗
C CustomEvent 携带 detail 数据经 EventTarget 中心派发,是原生、解耦且可组合的边界通信通道 ✓ 正确答案
D CustomEvent 无法传递自定义数据
#

18. BroadcastChannel 在同源多 Tab 状态同步中的事件可靠性与去重策略

A 后加入的 Tab 会自动收到历史状态
B BroadcastChannel 保证消息必达且有顺序
C BroadcastChannel 尽力而为投递,需以版本号 + 主动拉取 + localStorage 兜底实现状态收敛与幂等 ✓ 正确答案
D 多 Tab 并发写入无竞态风险
#

19. garfish 的 router-based 子应用切换时全局副作用清理与 unmount 钩子设计

A unmount 只需清空 DOM 容器
B garfish 按路由域驱动切换,unmount 需幂等、全量清理并异步完成,切换串行化防竞态 ✓ 正确答案
C 保活应用不需要管理隐藏期间的定时器
D unmount 失败时页面会自行恢复
#

20. Module Federation 在 Vite/Rspack 下的运行时共享与版本冲突解决

A 版本冲突只能通过人工协调解决
B Vite 下 MF 的 shared 配置无效,只能各打包一份
C 构建器不同则共享依赖格式完全不同,无法互操作
D Vite 经 @module-federation/vite、Rspack 原生插件接入 MF,运行时协商语义一致,冲突靠 requiredVersion 与契约测试治理 ✓ 正确答案
#

21. 子应用间 CSS 变量(Custom Properties)

A shadow DOM 内无法继承外部 CSS 变量
B :root 上的 CSS 变量不会跨应用生效
C 同名 CSS 变量互不影响,浏览器自动隔离
D CSS 变量沿 DOM 继承,子应用变量应声明在容器根并命名空间化,共享令牌由基座统一管理 ✓ 正确答案
#

22. Pinia/Redux 在子应用内独立 store 的隔离策略与全局状态被反模式拉回的防护

A 所有子应用应共享同一个 store 实例以保持数据一致
B 子应用持独立 store 实例,共享状态经受控接口注入,并以依赖边界与 lint 防止直接跨应用引用 ✓ 正确答案
C 直接 import 基座 store 模块是合法的共享方式
D 共享状态应尽量扩大范围以方便开发
#

23. window/document 代理的边界场景

A window.window 可以通过代理安全替换
B Proxy 可以拦截包括 Symbol 在内的所有属性访问
C 代理无法覆盖不可配置属性、Symbol 键与跨 realm 引用,需按威胁模型用拦截、适配与强隔离兜底 ✓ 正确答案
D 缓存 window 引用的库不受代理盲区影响
#

24. Shadow DOM 在样式与 DOM 隔离的工程应用

A Shadow DOM 提供样式与 DOM 原生边界,穿透需经 CSS 变量与 ::part/::slotted,依赖全局样式的库需适配 ✓ 正确答案
B shadow 内样式可以自由渗透到外部
C shadow 内表单控件自动与外部表单关联
D shadow DOM 中事件不会冒泡到外部
#

25. Realm API(提案)在 JavaScript 隔离的工程价值

A Realm 提供独立全局与内置对象的语言级隔离,消除代理盲区且比 iframe 轻,适合新架构强隔离场景 ✓ 正确答案
B Realm 与 Proxy 沙箱的隔离语义完全相同
C Realm 内的对象可直接共享给宿主,无需桥接
D Realm 提案已完全落地,所有浏览器生产可用
#

26. ShadowRealm(TC39 提案,现 Stage 2.7)在多实例加载的工程应用

A importValue 是同步 API,无加载时序问题
B Realm 内可以直接操作宿主 DOM
C ShadowRealm 以每实例一 Realm 实现多实例隔离,Realm 内不能直操 DOM,需经宿主注入的桥接 API ✓ 正确答案
D ShadowRealm 已全量支持,无需降级方案
#

27. Sandboxed iframes 与 allow-same-origin 的工程安全边界

A allow-scripts 与 allow-same-origin 同开时同源脚本可解除 sandbox 限制,安全配置应按信任分级避免该组合 ✓ 正确答案
B allow-same-origin 单独使用没有安全影响
C sandbox 会阻止 iframe 的所有网络请求
D sandbox 与 CSP 是互斥的两种机制
#

28. 微前端的子应用 JS 隔离(eval、new Function 拦截)

A 拦截 Function 构造器后动态代码必然在沙箱内执行
B 沙箱通过包装 eval 与 Function 构造器注入沙箱上下文,但间接 eval 等路径难覆盖,需 CSP 与强隔离兜底 ✓ 正确答案
C eval 的间接调用与直接调用语义相同,无需区分
D 动态代码拦截零性能开销
#

29. Shadow DOM 的 :host、::slotted 在组件样式封装的工程应用

A :host 管理宿主元素样式、::slotted 限定插槽内容样式,外部定制经 CSS 变量与 ::part 显式开放 ✓ 正确答案
B ::slotted 可以深入插槽内容的后代元素
C :host 样式优先级恒高于外部样式
D shadow 组件无法感知宿主环境
#

30. 微前端子应用的 window/document 代理边界场景,Symbol 属性、不可配置属性与 delete 操作的代理陷阱

A delete 操作在沙箱中不存在语义歧义
B Proxy 陷阱自动覆盖 Symbol 键访问
C window.window 可以被代理安全替换
D 代理对 Symbol 键、不可配置属性与 delete/描述符语义存在盲区,需显式处理并配契约测试防回归 ✓ 正确答案
#

31. wujie(无界)的 iframe + web component 通信模型的真实性能成本与可观测性盲点

A 主文档 RUM 天然包含 iframe 内的性能指标
B iframe 内 DOM 同步到主文档零成本
C 无界的 iframe 初始化与 DOM 桥接有真实成本,iframe 内错误与性能需经桥接显式上报消除盲点 ✓ 正确答案
D iframe 内错误会自动出现在主文档的监控中
#

32. 在子应用独立部署的 CI 中,如何校验主应用与子应用接口契约的版本兼容

A 接口兼容只能靠人工沟通确认
B 子应用 CI 用契约测试、schema 对比与组合冒烟校验版本兼容,breaking 变更需升级消费方或走兼容窗口 ✓ 正确答案
C breaking 变更可以直接发布不影响消费方
D 契约版本与语义化版本无关
#

33. 如何避免与宿主业务全局变量冲突并设置白名单

A 全局变量冲突靠命名规范即可完全避免
B 全局键白名单登记归属与用途,沙箱拦截非白名单写入,lint 与快照 diff 构成治理闭环 ✓ 正确答案
C 白名单只需列出子应用可读的键,写入无需管理
D 全局快照 diff 无法发现未登记的全局键
#

34. Service Worker 在缓存与请求拦截的隔离工程实践

A SW 缓存键无需版本化,发布后自动更新
B 每个子应用可以各自注册独立 SW 互不干扰
C 同源只能有一个 active SW,宜由基座统一注册并按应用命名空间分发缓存策略,remoteEntry 禁止长缓存 ✓ 正确答案
D remoteEntry 适合长缓存以提升性能
#

35. Trusted Types 在跨 iframe 注入 XSS 防御中的作用以及与 CSP nonce 的协作

A Trusted Types 只对同源脚本生效
B 配置 nonce 后 Trusted Types 不再必要
C Trusted Types 约束 DOM 注入通道,CSP nonce 控制脚本执行授权,二者构成跨 iframe XSS 纵深防御 ✓ 正确答案
D nonce 可以被注入者预测并复用
#

36. 前端代码如何做能力边界与权限隔离

A 子应用应直接获得裸 fetch 与全部存储能力
B 前端权限校验可以替代服务端权限校验
C 能力边界以最小权限注入与白名单收敛代码可访问面,权限隔离以服务端校验兜底前端 UI 约束 ✓ 正确答案
D 能力边界与权限隔离是同一件事
#

37. CSP(Content Security Policy)三级策略(Report-Only / Enforced / Strict)

A Report-Only 模式会拦截违规请求
B CSP 按 Report-Only → Enforced → Strict 渐进收紧,每项变更先报告观察再强制执行 ✓ 正确答案
C 严格 CSP 与 qiankun 的内联脚本注入天然兼容
D CSP 一旦 enforced 后无需再收集报告