跳到正文

Web 运行环境

Vifu Web 运行环境会把已通过的游戏作为托管 iframe 内的静态浏览器资源加载。Vifu 负责宿主外壳、AI 伙伴桥接、认证上下文、发布清单,以及连接 Vifu Cloud 服务。游戏负责渲染、输入、规则,以及通过 Vifu SDK 暴露的安全状态。

公开项目页运行在 vifu.ai。Vifu-hosted 游戏 runtime entry page 和可执行 bundle 资源在生产环境运行在 runtime.vifu.ai,开发环境运行在 runtime-dev.vifu.ai。后端 API 仍然在 api.consenger.comapi-dev.consenger.com

范围要求
入口index.html 等 HTML 文件,或 Godot Web Export 入口。
资源从构建输出出发的相对路径。
存储可以使用浏览器存储,但游戏必须在没有远程状态时也能启动。
网络首次渲染不应依赖第三方网络请求。
AI 伙伴通过 Vifu SDK 暴露可给 AI 使用的安全状态和游戏自有动作。
云端平台服务通过 Vifu SDK 使用;首次渲染不应依赖自定义后端。

游戏应能在 iframe 中运行:避免顶层导航、弹窗依赖、绕过 SDK 访问父窗口,以及用原始 window.parent.postMessage(...) 做后端信号。

community / uploaded game 使用严格 sandbox iframe。公开游戏页不会给 allow-same-origin,所以游戏不应依赖稳定 origin storage 保存长期状态。 需要跨设备或平台存档时,使用 vifu.gameState。只有显式 allowlist 的 trusted first-party runtime 才能获得更宽的 iframe 权限。

安全边界

浏览器安全层各自负责不同问题:

  • runtime.vifu.ai 把不可信 runtime code 和可信 Web shell / API origin 隔离开。
  • iframe sandbox 限制 runtime 可用的浏览器能力。
  • runtime CSP 限制可执行脚本、资源类别和网络 origin。
  • host bridge 默认拒绝,只授予已声明的平台能力。
  • private project、runtime session、credits、AI、plugins、game state 仍由后端授权决定。

目前,可执行 bundle 资源从 runtime origin 加载。runtime data 和 media 仍留在 Vifu API origin,因为这些 endpoint 仍由 API 层拥有;后续如果通过 Runtime Gateway proxy 这些资源,就可以把 community runtime 的 connect-src 进一步收紧到 runtime origin。