区分节点、连线与执行权限

节点表示工具、输入和最近可见输出,连线只表示计划的数据传递。画出连线并不等于允许自动运行,也不能证明两端数据类型兼容。

安全编排只在用户请求时传递文本。文件选择、密码字段、代码运行、网络请求和下载必须保持手动。

  • 保存稳定的工具标识。
  • 传递前审查输入和输出。
  • 每个节点显示错误状态。
  • 不自动执行高影响操作。

正确理解 IndexedDB 与 AES-GCM

项目记录可使用每条记录独立的随机 IV,并把项目 ID 作为认证附加数据进行 AES-GCM 加密。不可导出的 CryptoKey 存在同一 IndexedDB 中,使流程无需服务器。

这不能防止已被入侵的设备、恶意扩展或同源恶意脚本。清除站点数据会同时删除密钥,使剩余密文无法恢复;浏览器配额和不含敏感数据的备份仍需用户管理。

  • 加密前后都验证结构与大小。
  • 每条记录使用新的 96 位 IV。
  • 清楚显示配额错误。
  • 提供项目删除控制。

配方 URL 不是秘密通道

节点和边可写成受限 JSON,再用 gzip 压缩与 Base64url 编码。导入端只能接受已知版本、合法工具 slug、有效引用及限定大小。

URL 可能出现在历史、剪贴板、消息或截图中。输出必须始终排除,输入默认排除;noindex 导入页只是搜索卫生措施,不是访问控制。

  • 绝不序列化密码或文件。
  • 包含输入必须单独确认。
  • 拒绝未知结构版本。

WebRTC 仍需信令与安全码核对

RTCDataChannel 使用 DTLS 加密传输,但 SDP 提议、应答与 ICE 候选仍需交换。无信令服务时使用十分钟后失效的一次性代码;代码可能包含网络信息,应通过独立可信渠道传递。

DTLS 不能证明复制 SDP 的人是谁。双方应通过另一渠道核对由房间、对等端标识与两端 DTLS 指纹生成的安全码。不同代码可能表示主动中间人;相同代码也不等于身份验证。实时共享默认暂停,并需单独开启。

没有 STUN 或 TURN 时,NAT、防火墙或浏览器策略可能阻断连接。对待处理邀请、并发传输、分片、完整文档和 DataChannel 缓冲设置上限,可降低资源滥用。

  • 保持 iceServers 为空。
  • 代码应短期有效且一次性使用。
  • 共享前通过另一渠道核对安全码。
  • 不要把安全码称为身份验证。

性能、可访问性与测试

编辑器只在工作站路由动态加载,压缩放在 Web Worker 中。完整工具筛选、起始流程、自动布局、撤销/重做与移动端单列界面可避免只依赖画布。

本地助手在修改画布前显示置信度与选择理由。测试覆盖配方往返、非法结构、AES-GCM 篡改、配额、伪造路径、过期信令码、对称安全码以及 noindex/canonical。真实连接仍取决于网络拓扑。