疑似HuggingFace Demo有跨会话 API key 复用风险
Author: onepercentLICreated Apr 22, 2026Updated Apr 23, 2026
问题描述
在填入API后,没有任何操作,API后台显示有大量消耗,几分钟内消耗了13刀。怀疑 #60 也是同样的原因。
可能的问题原因
在app.py中,apply_keys()函数会将用户输入写入: os.environ["OPENROUTER_API_KEY"] os.environ["GOOGLE_API_KEY"] 随后调用reinitialize_clients()。 在utils/generation_utils.py中,reinitialize_clients()会重建模块级全局客户端,例如: gemini_client openrouter_client 后续run_generate()与run_refine()并未接收会话级 API 密钥作为输入。它们调用下游生成 / 优化逻辑时,会使用当前已初始化的任意全局客户端。 服务路由模块同样会自动选择当前可用的全局客户端。
这意味着某一浏览器会话中的用户操作,可能影响由同一运行中的 Space 进程处理的、后续来自无关会话的请求。 用户 A 输入 API 密钥并点击 “应用密钥” Space 进程将该密钥存入进程全局状态 用户 B 在另一会话中打开该 Space 并提交请求,未提供自身密钥 请求仍可能通过 A 此前初始化的客户端执行
Source: dwzhu-pku/PaperBanana