# 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 后无需再收集报告