From 1e1555ff27d6d8a9cabe6f2cecf8f7f70bb98974 Mon Sep 17 00:00:00 2001 From: DemonGatanjieu <1027066412@qq.com> Date: Fri, 9 Oct 2026 15:51:30 +0800 Subject: [PATCH] docs(agents): security floor from the ComfyUI-Manager review No code from downloads or user files runs; downloads are checked by SHA-256; routes take no arbitrary local paths; routes that write, move, delete or go online on the user's behalf answer only this computer; deletions go to the Recycle Bin and nothing is overwritten. Co-Authored-By: Claude Opus 5.5 --- AGENTS.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/AGENTS.md b/AGENTS.md index 3b5f860..8022581 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -102,6 +102,16 @@ UX 请求默认允许调整布局、交互和文案,不代表允许改变文 - 大目录遍历、哈希和大量磁盘 I/O 使用已有工作线程/进程路径,不阻塞 aiohttp 事件循环。 - UI 适配不能偷偷迁移用户数据、修改全局配置或改变现有路由与存储格式。确需改协议时同步调用方、兼容策略和测试。 +### 安全底线 + +ComfyUI-Manager 收录审核检查的就是这几类口子(2026-10 审 Anomalous_TTS 时逐条指出过)。没有“先这样、以后再补”的例外: + +1. **不执行下载来的或用户文件里的代码。** 数据不用 `pickle`、`eval`、`exec`、动态导入读;配置文件当数据解析。模型文件只读 safetensors / GGUF 的文件头,`.ckpt` / `.pt` / `.pth` / `.bin` 不打开,界面提醒它们可能带代码。 +2. **下载要能核对。** 只从允许的 https 站点下载,先写 `.part`,核对 SHA-256 后才改名放入;没有可核对的指纹时在界面上说明。下载的东西只当数据用。 +3. **接口不接受任意本机路径。** 只收“类型 + 根目录序号 + 相对路径”,在后端用 `resolve_within` 校验;需要指向本机某个文件时,由服务端自己找到它,只给页面一个令牌。 +4. **会写入、移动、删除文件或替用户联网的接口只接受本机请求**(请求来自本机,没有经过代理,Host 也是本机)。用 `--listen` 开放到局域网时,别的设备只能查看。新接口必须做到;已有接口还没全部做到,改到哪个补哪个。 +5. **用户的文件删除一律进回收站,没有回收站就拒绝;从不覆盖**(同名另存为“名字 (2)”或拒绝)。插件自己产生的临时文件(`.part`、暂存区)可以直接删。 + ## 6. 清理旧实现 - 替换一条路径时搜索它的导入、导出、调用、字段、事件和选择器;确认无用后一起移除。 @@ -139,4 +149,4 @@ UX 请求默认允许调整布局、交互和文案,不代表允许改变文 - 该更新哪份文档见第 0 节的表。规范以本文件为唯一正文,避免几份要求各自漂移。 - 完成前审查差异、死代码、临时文件和空白错误;保留现有文件编码及换行风格。 -**交付自查:** 新职责放对位置了吗?是否只有一个状态来源?每条关闭路径会释放资源吗?迟到请求会写错对象吗?旧代码和旧 CSS 清掉了吗?新文案已本地化吗?用户文件失败时还在吗?测试验证了实际行为吗? +**交付自查:** 新职责放对位置了吗?是否只有一个状态来源?每条关闭路径会释放资源吗?迟到请求会写错对象吗?旧代码和旧 CSS 清掉了吗?新文案已本地化吗?用户文件失败时还在吗?新接口会动文件或联网吗,只接受本机请求了吗?测试验证了实际行为吗?