补齐后端最小功能和前端

This commit is contained in:
ChuNa7a committed 2026-10-16 23:36:56 +08:00
1 parent 0e347aad9e
commit 3e7c9420fe
60 files changed
+8181 -329

No files matched your search

+7 -2
View File
@@ -4,14 +4,14 @@
## 文件白名单
- 仅允许根目录 `index.txt` 和 `posts/<目录>/<文件>` 内的 `.txt/.md/.markdown/.png/.jpg/.jpeg/.webp` 普通文件;扩展名使用小写。
- 仅允许根目录 `index.toml`(唯一允许的 TOML 文件) 和 `posts/<目录>/<文件>` 内的 `.txt/.md/.markdown/.png/.jpg/.jpeg/.webp` 普通文件;扩展名使用小写。
- 拒绝证书扩展名、隐藏文件、`.gitignore`、脚本、配置、符号链接、可执行位、子模块和其他类型。
- 文本中的 PEM 证书/密钥标记也会拒绝。
- Git 接收层能直接拦截,因此非白名单内容使整次推送失败,不静默改变作者提交。
## 容量配额
- 每个文本文件上限 256 KiB;图片单张 2 MiB、每目录最多 12 张、尺寸 4096×4096;每个目录合计 6 MiB。
- 根索引上限 64 KiB,每个文本文件上限 256 KiB;图片单张 2 MiB、每目录最多 12 张、尺寸 4096×4096;每个目录合计 6 MiB。
- 每位作者最多 1000 个目录、14001 个文件、原始文件合计 64 MiB;全站导入快照另限 64 MiB、1000 篇,超出时等待管理员处理。
## Git 接收限额
@@ -21,6 +21,7 @@
## 正文解析
- 同一文章的相对链接仅可引用同目录已验证的文本或图片,禁止跨目录读取;只有从入口可达的最多 64 个页面、页面图片和封面可被导入。
- 使用成熟 Markdown 解析器,拒绝原始 HTML、危险链接协议、外链图片、控制符和双向隐藏字符;代码块是惰性文本,绝不执行 MDX、JS、仓库脚本、构建任务或上传内容。
## SSH 命令与密钥
@@ -48,3 +49,7 @@
- 服务器只返回 JSON Markdown 与图片;后续前端必须把元数据当文本输出,并继续禁用原始 HTML、MDX和危险链接,不能将接口字段直接作为 HTML 执行。
- 隔离不能替代 Git/OpenSSH/解码库的持续安全更新。
## 索引暂存与生效版本
TOML 的语法或元信息错误只更新作者接收仓库中的暂存提交,不替换现有文章或时间记录。文件类型、模式、配额和正文安全检查仍会执行,不能通过破坏 TOML 绕过检查。有效索引中的入口不存在时,该文章不再生效。非公开文章的所有页面和资源均返回 404,防止绕过入口直读。