公司动态
AMC-WebUI安全指南:多Key轮询、BYOK原则与自托管代理的风险边界完全清单
AMC-WebUI安全指南多Key轮询、BYOK原则与自托管代理的风险边界完全清单【免费下载链接】AMC-WebUI面向 Gemini 的 Local-First AI 工作流 WebUI集成多模态聊天、Canvas、文件处理、实时搜索、代码执行与高级推理。项目地址: https://gitcode.com/gh_mirrors/al/AMC-WebUIAMC-WebUI 是一款面向 Gemini 的 Local-First AI 工作流 WebUI支持多模态聊天、文件处理、实时搜索与代码执行。自托管时如何保证API Key 安全、如何划定自托管代理的风险边界是新手最关心的问题——本文作为安全指南完整盘点它的三层防护多Key轮询、BYOK 原则与代理安全边界让你部署得放心。一、多Key轮询把配额与限流风险摊薄到多个密钥AMC-WebUI 的 API 配置区支持一次填入多个 API Key换行或逗号分隔应用会在每次请求时自动轮换使用这是应对单 Key 配额耗尽429 限流最简单有效的手段顺序轮换每次请求后索引自动前进到下一个 Key「上次使用的索引」保存在浏览器 localStorage 中按目标隔离Gemini 主线与每个第三方连接各自维护独立的轮换计数互不干扰会话锁定某个会话可锁定固定使用某把 Key便于 A/B 测试或费用归属锁定的 Key 失效时自动回落轮换双 Key 池隔离Gemini 原生 Key 与 OpenAI 兼容 Key 分开保存切换模式不会互相污染核心逻辑见 src/utils/apiKeySelection.ts。 新手提示轮换意味着某把 Key 当天配额用完后其余 Key 可继续工作对话不需要中断也无需手动切换配置。二、BYOK原则密钥留在浏览器服务端只兜底BYOKBring Your Own Key自带密钥是项目的默认密钥策略场景使用的 Key说明浏览器里已填 Key浏览器 Key 优先请求直接携带浏览器密钥发起浏览器未填 Key服务端GEMINI_API_KEY兜底仅 Docker 自托管时生效显式设置SERVER_KEY_PRIORITYtrue服务端 Key 优先适合团队统一计费场景服务端「浏览器 Key 优先、服务端兜底」的解析逻辑可查 server/src/proxyHeaders.ts。⚠️一个常见误区「Key 存在浏览器里就更安全」并不完全成立。保存在浏览器的 Key 仍可被同一浏览器上下文中的脚本、扩展或 XSS 攻击读取官方明确提示浏览器本地 Key 适合自用/可信部署不应把它当作服务器级密钥来用。三、自托管代理风险边界四道内置防线AMC-WebUI 的web api双容器部署docker-compose.yml定位为受信任/自托管环境官方明确它不足以直接作为公网多用户网关。但项目内置了多层实用防线3.1 CORS 白名单代理只响应ALLOWED_ORIGINS白名单逗号分隔内的跨域来源留空即等效仅限同源访问从入口挡住陌生网页的调用。实现见 server/src/cors.ts。3.2 SSRF 防护别让服务器替你打内网第三方代理只接受 HTTPS上游localhost、10.*、192.168.*等私网地址直接拒绝重定向采用手动模式公网 URL 若302 跳到内网地址不会跟随堵死「跳转绕过」漏洞MCP HTTP 客户端额外做DNS 解析复验防 DNS 重绑定并对每一跳重定向逐一复检图片代理有 25MB 体积上限与 15 秒超时防止资源耗尽私网判定规则在 shared/privateNetwork.ts第三方代理的拦截点在 server/src/thirdPartyProxy.tsMCP 的逐跳校验见 server/src/mcpHttpSecurity.ts。3.3 代理头剥离与密钥重签代理会剥离cookie、authorization、host、proxy-authorization等敏感请求头再重新写入解析后的密钥浏览器 Key 或服务端 Key避免上游配置被伪造、密钥被透传泄露。3.4 公开配置与机密配置分离变量属性说明GEMINI_API_KEY/THIRD_PARTY_ROUTES仅服务端绝不出现在前端文件里RUNTIME_*系列公开运行时配置会写入浏览器可读的 runtime-config.js只能放非机密信息ENABLE_MCP_STDIO/ENABLE_MCP_PRIVATE_HTTP默认false仅在可信环境按需开启第三方连接OpenAI / DeepSeek / Anthropic / OpenRouter / Qwen / Kimi / GLM / 自定义各自维护独立的 Key、Base URL 与轮换计数用量统计也按连接分组互不串扰连接模型与密钥边界的设计文档见 docs/superpowers/specs/2026-08-17-third-party-api-connections-design.md。四、要暴露公网先补齐这四件README 原文警告纯 BYOK 代理本身并不足以作为公开互联网下的「无鉴权多用户 API 网关」。如果确实要对外开放请额外引入✅鉴权登录 / Token——防止陌生人消耗你的配额✅配额与限流——防止单 IP 打空整个 Key 池✅滥用防护——拦截提示词滥用、批量爬取✅审计与租户隔离——能分清「哪条请求是谁发的」五、自托管部署安全清单6 条GEMINI_API_KEY不要写进前端可见的文件优先用 BYOK 方式在设置界面填写 同源部署让ALLOWED_ORIGINS保持为空跨域时填精确域名不要用*ENABLE_MCP_STDIO、ENABLE_MCP_PRIVATE_HTTP保持默认关闭 单 Key 配额紧张时在 Key 输入框换行填入多 Key 启用轮询 使用 Gemini Robotics 模型前先为该 Key 在 AI Studio 配置 API 限制否则会返回 403 定期用内置日志查看器检查 API 调用由哪把 Key 发出、花费多少发现疑似漏洞请勿公开 issue应通过私有安全渠道报告范围涵盖 Key 泄露、文件处理、XSS/HTML 预览与部署配置弱化详见 SECURITY.md。【免费下载链接】AMC-WebUI面向 Gemini 的 Local-First AI 工作流 WebUI集成多模态聊天、Canvas、文件处理、实时搜索、代码执行与高级推理。项目地址: https://gitcode.com/gh_mirrors/al/AMC-WebUI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考