miaomiao
|
249ed8cd2c
|
feat: 后台 MUI 主题 MD3 化(与前台同源 token/大圆角/surface 边框)+ 深色模式修复
|
2026-08-07 00:27:00 +08:00 |
|
miaomiao
|
a858439e19
|
fix: 首页侧栏强制显示(blog_show_sidebar 开关仅影响博客页);v2.0.0 版本号
|
2026-08-07 00:11:15 +08:00 |
|
miaomiao
|
535e4b8fcd
|
v2.0.0: 大版本号更新(v1 原生前端 → v2 React 前后台)
|
2026-08-06 23:59:48 +08:00 |
|
miaomiao
|
75d102d6ee
|
docs: AGENTS.md 更新至 v2 现状(assets 挂载/无更新接口/新路由顺序等)
|
2026-08-06 23:56:34 +08:00 |
|
miaomiao
|
f0b642362a
|
fix: /assets 挂载构建产物(vite base='/' 与 dist/assets 路径不匹配导致 MIME text/html 白屏)
|
2026-08-06 23:55:03 +08:00 |
|
miaomiao
|
45f0dc9beb
|
fix: serveIndex 加 no-store 缓存头(防止旧 index.html 缓存导致 assets 404 白屏)
|
2026-08-06 23:28:52 +08:00 |
|
miaomiao
|
b29fbcdcfc
|
fix: 面板嵌入 proxy 模式支持 query token(iframe 无法带 header)
|
2026-08-06 23:20:25 +08:00 |
|
miaomiao
|
20deb09dbd
|
P6: 集成上线 - dist 切换/后台路由/Setup+Embed/v1 退役/文档更新
- server.js: serveIndex 改读构建产物 dist/index.html(占位符替换保留);新增 /admin* → dist/admin.html;/forum/manage/:id 改 302 重定向
- Setup 初始化向导三步迁移;Embed 面板嵌入迁移(proxy 代理)
- v1 前端全部退役(12 html + public/js/ 12 文件 + deploy 脚本)
- README/AGENTS.md 更新为 v2 架构(React+Vite、better-sqlite3、构建流程)
|
2026-08-06 23:16:18 +08:00 |
|
miaomiao
|
c71f4f0ed6
|
P5: 后台独立应用(MUI)- 13 模块/布局/守卫/复用前台基建
|
2026-08-06 23:10:09 +08:00 |
|
miaomiao
|
f7dd4163b2
|
P4: 审查收尾 - 第三方验证码闭环/导航指向/验证码统一校验
|
2026-08-06 23:01:52 +08:00 |
|
miaomiao
|
72295ded4d
|
P4: 密码箱迁移(PIN/CRUD/生成器/安全加固)
|
2026-08-06 22:51:17 +08:00 |
|
miaomiao
|
f4a5276fb8
|
P4: 登录/注册/个人中心迁移(验证码 proof/邮箱验证/头像/改密)
|
2026-08-06 22:48:48 +08:00 |
|
miaomiao
|
be6f644154
|
P4: 论坛迁移(列表/发帖/详情回复/板块管理)
|
2026-08-06 22:45:31 +08:00 |
|
miaomiao
|
bdd3a068af
|
P4: 首页/博客/写文章迁移(列表/详情/评论/编辑/上传)
|
2026-08-06 22:42:25 +08:00 |
|
miaomiao
|
990f6f40d0
|
P4: 基础设施 - api 层/布局壳/公共组件(Markdown/Captcha/音乐嵌入)
|
2026-08-06 22:38:21 +08:00 |
|
miaomiao
|
1bed2dda5f
|
P3: 前端工程化搭建 - Vite + React 多入口脚手架
- vite.config.js 双入口(前台 index + 后台 admin),产物输出 public/dist
- 前台 App 布局壳 + 11 条路由占位;api client/theme/utils 共享层
- index.html 保留 ${site_name} 等占位符与 style.css 引用(UI 100% 还原基础)
- dev 代理 3101,构建产物 gitignored
|
2026-08-06 22:29:03 +08:00 |
|
miaomiao
|
b319584012
|
chore: 换轨遗留清理 - Node>=22 文档/sql.js 卸载/cli 并发写警告
|
2026-08-06 22:24:00 +08:00 |
|
miaomiao
|
c4c0115ba6
|
P2: 数据层换轨 better-sqlite3(sql.js → 原生 SQLite)
- db.js: getDb 同步化 + new Database(DB_PATH) 直接打开;run/get/all 重写为 prepare API;删除 saveDb 全量导出;22 处 DDL 改 exec
- migrateSchema 填实 version 1(user_settings.pin_iter),passwords.js 删除私有 ensureSchema
- routes/import.js: better-sqlite3 只读打开上传文件(PRAGMA table_info + all() 对象行),finally 关闭
- 数据零迁移:现有 data/rainweb.db 直接打开,播种数据完整,CRUD/SSR/cli 全通
|
2026-08-06 22:19:57 +08:00 |
|
miaomiao
|
f6407a84f7
|
fix: 审查修复 - setup 死锁/验证码前后端对接/SPA 侧 XSS
- setup /complete 改 setup_complete 门禁(修复新装死锁),新密码禁止等于默认
- 验证码 proof 全链路贯通:前端 captcha.js/api/login/register/forum 传 captcha_proof;consumeProof 一次性消费 + jti 防同秒碰撞;删除死端点与死代码
- render.js 引入 DOMPurify 净化 markdown(SPA 侧存储型 XSS)
- email.js SMTP 检查提前;avatar 强正则白名单;register 验证码 crypto.randomInt
|
2026-08-06 22:11:43 +08:00 |
|
miaomiao
|
2ac286a4f8
|
P1: 后端安全加固 - 上传白名单/SSR净化/限流/密码箱/鉴权收敛/数据层统一
- 上传扩展名白名单 + MIME 校验;/uploads 加 nosniff + CSP sandbox 防护头
- ssr.js 全插值转义 + DOMPurify 净化 + JSON-LD JSON.stringify 序列化(消除存储型 XSS)
- 登录/发帖限流(express-rate-limit);验证码 proof token 体系(5 分钟 JWT + 防重放)
- 密码箱:PBKDF2 600k(pin_iter 列兼容旧密文)、解锁 3 次/5 分钟锁定、滑动过期会话、PIN >= 6 位
- adminOnly 查库复查;草稿仅 admin/作者可见;错误信息收敛;avatar 站内路径白名单;验证码 crypto.randomInt
- cli.js 删除重复 sql.js 封装统一到 db.js(data/rainweb.db 单路径);db.js 新增 migrateSchema 迁移框架
|
2026-08-06 21:32:06 +08:00 |
|
miaomiao
|
91cd009899
|
P0: 删除 Web 更新链路,修复 setup/proxy/email 安全漏洞
- 删除 /api/update/check 与 /api/update/run(无鉴权 RCE 面 + .git 覆盖风险)
- cli.js upgrade 仅保留 git pull 分支,删除 GitHub zip 下载分支
- admin 前端移除更新按钮与 checkUpdate/runUpdate
- JWT_SECRET 启动时随机生成写入 .env.json,删除硬编码回退
- /api/setup/complete 加 adminOnly;/setup/status 移除 default_password 泄露
- /api/proxy/fetch 加 adminOnly + 内网地址拦截(SSRF)
- send-verify 验证码不再回显,改 crypto.randomInt,修复 pending 重建 bug
|
2026-08-06 21:22:04 +08:00 |
|
miaomiao
|
4d0ad9da68
|
docs: 添加 AGENTS.md 与 v2 重构计划文档
|
2026-08-06 21:22:04 +08:00 |
|
miaomiao
|
e7f8b3f173
|
v1.4.2: PJAX router, auto-hide music embed, update script fix
- PJAX navigation: nav clicks fetch & replace <main> seamlessly
- router.js dynamically loads page-specific JS (blog/forum/admin)
- Music embed: global on/off toggle, hover-based auto-collapse
- Update script restored to download-based (no git dependency)
- All PJAX pages have #musicEmbed container (index, blog, forum, admin, passwords)
- Version bump to 1.4.2
|
2026-07-02 02:22:09 +08:00 |
|
miaomiao
|
a30a628772
|
fix: add musicEmbed container to admin.html for PJAX persistence
|
2026-07-02 02:09:32 +08:00 |
|
miaomiao
|
cd290ff237
|
PJAX router + music embed with auto-hide
- router.js: intercept nav clicks, fetch page via AJAX, replace <main> content
- Blog/Forum/Admin/Homepage init functions extracted for PJAX re-init
- music-embed.js: hover-based auto-hide (leave → 10s timer → collapse)
- Settings: music_embed_code, position, pages, autohide, idle_timeout
- New keys replace old homepage_music_embed/position (auto-migrated)
|
2026-07-02 02:00:49 +08:00 |
|
miaomiao
|
f7f30af569
|
v1.4.1: theme color refactor, UI restructuring, markdown improvements
|
2026-07-01 23:46:01 +08:00 |
|
miaomiao
|
4465130e60
|
fix: update download URL follows redirects, use codeload directly
|
2026-07-01 20:05:28 +08:00 |
|
miaomiao
|
bd0c0442ab
|
feat: add public settings endpoint and update settings retrieval in frontend
|
2026-07-01 19:41:06 +08:00 |
|