feat: embed frontend in backend
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/tag/release-backend Pipeline was successful

This commit is contained in:
justme committed 2026-10-02 13:11:10 +08:00
1 parent 22f9bcfa46
commit fbe6abd519
12 files changed
+217 -13

No files matched your search

+7 -4
View File
@@ -62,10 +62,13 @@
端到端加密的前提是浏览器执行的是正确的代码。如果同一个被攻破的后端同时下发前端,它可以换成偷 K 的页面。
第一版的缓解:
- 前端静态资源托管在**独立于 API 的域名**,API 节点被攻破不影响前端。
- 所有脚本使用 SRI,构建产物带版本哈希,发布时公布哈希。
- 前端托管方被攻破的风险仍然存在。
隔离部署的缓解:
- 前端静态资源托管在**独立于 API 的域名**,API 节点被攻破不影响前端代码。
- 可由独立托管方校验脚本 SRI 与构建哈希;前端托管方被攻破的风险仍然存在。
嵌入式部署的取舍:
- `WebDrop.Frontend` 将 Vite dist 嵌入后端程序集,让 API 以同源方式提供页面。
- 这只简化部署,不增强前端与后端的隔离。若部署主机或镜像被控制,攻击者仍可替换页面并窃取用户后续输入的密钥。
后续:发布签名加 PWA 校验、CLI 客户端(协议不依赖浏览器,第三方可自行实现)。