Electron IPC 安全桥接
Electron IPC Security Bridge
Electron 渲染进程与主进程的安全通信,contextBridge 隔离与 API 命名空间设计
子问题
1.contextBridge API 命名空间设计
2.文件系统操作 IPC 封装
3.图片存储本地协议处理
4.缓存管理与数据导入导出
5.自定义特权协议注册与 MIME 类型映射
6.IPC 数据迁移的回滚与幂等性保证
7.多存储源(fs/localStorage/IndexedDB)自动降级与数据迁移
各项目的解法1 solutions
Signals
横向对比
| 维度 | moyin-creator |
|---|---|
| 桥接架构 | contextBridge 四命名空间(imageStorage/fileStorage/storageManager/electronAPI) |
| IPC 模式 | invoke/handle 请求-响应,16 个预定义 channel |
| 协议设计 | 自定义 local-image:// 特权协议,支持 Fetch API + CSP bypass |
| 安全措施 | 安全文件名生成 + 路径冲突校验 + 零字节校验 + 导入回滚 |
| 降级策略 | isElectron() 检测,三源降级(fs → localStorage → IndexedDB) |
| 类型安全 | declare global Window 接口扩展,渲染侧完整类型推导 |
最佳实践
1.渲染进程无直接 fs 访问
2.所有文件操作通过 IPC invoke
3.按功能划分 API 命名空间
4.安全文件名生成(时间戳+随机串)防路径注入
5.导入操作先备份后执行,失败自动回滚
6.路径冲突校验防止目录循环嵌套