Electron 安全桥接
Electron Secure Bridge
通过 contextBridge 安全暴露主进程能力给渲染进程
子问题
1.安全的 IPC 通道设计
2.文件系统操作封装
3.图片存储与 base64 转换
4.数据导入导出与缓存管理
5.自定义协议注册与特权配置(secure/fetchAPI/bypassCSP/stream)
6.Web→Electron 三源数据迁移(localStorage/IndexedDB/文件系统丰富度判断)
7.导入导出事务性保护(tmpdir 备份 + 失败回滚)
各项目的解法1 solutions
Signals
横向对比
| 维度 | moyin-creator |
|---|---|
| 桥接架构 | 四命名空间 contextBridge(imageStorage/fileStorage/storageManager/electronAPI) |
| 协议设计 | local-image:// 自定义特权协议,支持 fetch/stream/bypassCSP |
| 存储分层 | projects/ + media/ 双目录,basePath 统一管理 + legacy 降级 |
| 迁移策略 | 三源自动检测(localStorage/IndexedDB/文件系统)+ hasRichData 丰富度判断 |
| 数据安全 | 导入导出含 tmpdir 备份回滚,零字节校验防空文件,路径冲突检测 |
最佳实践
1.contextBridge 替代 nodeIntegration 保证安全
2.按功能域分组 API(imageStorage/fileStorage/storageManager)
3.invoke 模式统一异步通信
4.自定义协议替代 IPC 实现零开销媒体加载(img/video src 直接引用)
5.文件保存后零字节校验防止空文件污染存储
6.存储路径支持 legacy 降级(basePath → projectPath/mediaPath 自动回退)
7.导入操作先备份到 tmpdir 再执行,失败自动回滚