Utopia 目前是 v0.1。下面这些是已知的、尚未解决的限制 —— 不是漏洞报告,是设计上还没走到的地方。把它们写在这里,是因为一个卖点是「每条结论都可追溯」的项目,没有理由对自己的短板含糊。
界面里录入的 LLM API Key、以及问数功能注册的数据库连接串,都以明文存在 Postgres 里。
能读到库的人就能拿到它们。静态加密是 1.0 之前的硬化项 —— 在那之前,请把这套系统和它的数据库部署在可信网络内,并且给数据库单独的访问控制。
compose 里数据库默认口令是 utopia。默认配置下端口只绑回环(127.0.0.1:1517),外网连不上,所以这不是紧急问题;但如果你改了 UTOPIA_DB_BIND 把它暴露出去,先换掉 .env 里的 UTOPIA_DB_PASSWORD。
- JWT 签名密钥自动生成:首次启动生成 32 字节 CSPRNG 存入数据库,不再有「所有部署共用同一个默认密钥」这回事。
- 会话 cookie 在 TLS 后面自动打 Secure:按请求的
X-Forwarded-Proto判定,走 HTTPS 就打上,浏览器不会再把 token 经明文链路发出去。没有反向代理时不打,本地 HTTP 开发照常。代理不发那个头的话,用UTOPIA_COOKIE_SECURE=true强制打开。 - 数据库端口只绑回环:
127.0.0.1:1517,app 走 compose 内网连库,那个映射只服务本地开发。 - 可选的受限运行角色:配置
UTOPIA_APP_DB_PASSWORD与UTOPIA_MIGRATION_URL后,应用以只读写业务表、对台账只增不改的角色连库,迁移另走 owner 身份。 - 问数 SQL 只读闸:解析白名单、只读事务、强制行数上限。
- 口令哈希用 argon2。
发现了上面没有列出的问题,请开一个 issue。如果涉及可被利用的细节,先只写复现的最小信息,我们再私下沟通完整内容。