Commit Graph
54 Commits
Author SHA1 Message Date
miaomiao af79e5864f 修复工单系统竞态与接口安全问题 2026-09-05 16:14:43 +08:00
miaomiao 8e890d9a96 feat: 新增工单反馈系统 2026-09-05 02:42:51 +08:00
miaomiao e505a170b7 feat: 工作台 proxy 深度改造(Muximux 模式)——/proxy/{slug}/ 路径前缀 + HTML 改写 + 运行时 shim + WebSocket + cookie 鉴权 + 按面板信任模型 sandbox,支持嵌入几乎所有 SPA 2026-08-22 00:17:39 +08:00
miaomiao 0c8ea58d22 fix: 个人中心昵称/博客保存修复 + 顶栏搜索框居中(5条限制) + UI 修复(顶栏选中高亮/UID开关/Banner/Tab/登录验证码按钮) 2026-08-14 03:18:30 +08:00
miaomiao ee0086b252 feat: 昵称+头衔+UID 全站显示(系统身份/自定义头衔双层,主要位恒显#id 评论位开关)+ 用户管理大弹窗编辑 + 用户主页视觉修复(Banner/tab/博客/QQ)+ 评论通知回退 admin + 全量评论列表 + 头像 bug 修复 + 站长帖判断改 author_username 2026-08-14 02:36:57 +08:00
miaomiao 171f1f5893 feat: 后台搜索引擎验证文件上传(Bing/Google 站长工具,存 public/ 根目录,白名单+内容校验+防覆盖) 2026-08-13 22:21:44 +08:00
miaomiao 6dfa3dd5c1 feat: 页脚分栏支持最多三栏并行(品牌+3栏目4列自适应布局,编辑器与后端校验上限 3) 2026-08-13 15:44:30 +08:00
miaomiao c8707cf704 feat: 公开个人主页(/u/:id 名片+统计+帖子/回复内容流,全站头像可点跳转,bio 签名+最后活跃) 2026-08-13 02:12:14 +08:00
miaomiao 4c2017cd2c feat: 附件真锁(锁定块内附件改走 /api/upload/locked 鉴权接口,JWT 解锁 token)+ 更换软件授权协议(定制版 LICENSE) 2026-08-13 01:25:52 +08:00
miaomiao 13f4a68c06 fix: 头像 QQ 邮箱回退失效(SQL 补 qq_from_email 提取列,不暴露 email 本体) 2026-08-13 01:10:34 +08:00
miaomiao 914ad4239b feat: 用户头像(自传>QQ>RainID 优先级 + author_avatar 全接口)+ profile QQ 管理 + RainID 个人中心跳转 2026-08-13 00:09:12 +08:00
miaomiao 38be22700d feat: [lock:] markdown 锁定(login/reply/password 真锁,服务端剥离 + 解锁接口 + SSR 打码) 2026-08-12 23:39:12 +08:00
miaomiao 2cf6368abf feat: 页脚栏目自定义(后台编辑器+前台渲染)+ 外链跳转确认页(/out 5秒倒计时+全站拦截) 2026-08-12 22:27:46 +08:00
miaomiao 5c220f7ecf feat: 站长保护(逃生通道写死 admin + 站长帖仅本人可删改)+ 移动端汉堡菜单 + 站长帖操作显隐 2026-08-12 20:52:16 +08:00
miaomiao dd2e1f9c84 feat: 论坛帖子二次编辑(作者/版主/admin,Write 编辑分支 + 更新标记 + edit_count) 2026-08-12 19:47:54 +08:00
miaomiao c7eadec61c fix: 版块图标校验放行 /uploads/ 相对路径(上传图标保存被拒) 2026-08-12 19:36:16 +08:00
miaomiao 4325e5aabe feat: 版块图标上传(≤1MB,png/jpg/gif/webp,sha去重,未设置降级首字+哈希色) 2026-08-12 19:06:58 +08:00
miaomiao 46bc4bef26 feat: RSS 三源(博客/论坛全站/版块级)+ 后台 RSS 管理页 + 前台订阅按钮 + SSR head 注入 2026-08-12 18:59:00 +08:00
miaomiao f91df3916a feat: 版主可改版块 profile(名称/描述/图标/底色,独立接口 + 管理台版块设置 Tab) 2026-08-12 18:47:48 +08:00
miaomiao b301a44caf feat: 版主子管理页(帖子管理/公告/禁言)+ 版块级禁言(migrations v5) 2026-08-12 18:44:47 +08:00
miaomiao a9726df1ee feat: 论坛贴吧风格大升级(L1版块索引+L2版块页+L3楼层帖+置顶/加精/多版主/admin超管+后台帖子管理+分享) 2026-08-12 18:14:12 +08:00
miaomiao 040f9bf2ed fix: 安全加固(M1 导入注入 + L1-L9 响应头/限流/时序/附件/密码箱)+ 博客分享按钮 + 论坛游客可见开关 2026-08-12 16:20:38 +08:00
miaomiao 93c1fb9c7a fix: 安全审计修复(H3 express.json 恢复 + H2 代理 iframe 沙箱 + H4 论坛越权 + M2/M3/M4/M5/M7) 2026-08-12 16:10:11 +08:00
miaomiao 3cfb9a552c fix: rainid_register_redirect 加入 PUBLIC_KEYS(前台注册页可读,跳转 RainID 生效) 2026-08-11 00:03:34 +08:00
miaomiao 5b6691d2c1 feat: admin 本地密码逃生通道(RainID 配置错误时仍可登录后台) 2026-08-10 21:09:14 +08:00
miaomiao ed40a040e3 feat: RainID 配置入后台站点设置(secret 双通道可写不可读)+ site_url 域名 2026-08-10 19:34:45 +08:00
miaomiao 4200826120 feat: RainID 单点登录接入(ROPC 密码登录 + 授权码 PKCE + 影子账号 + 注册跳转 + 登出联动) 2026-08-10 18:20:42 +08:00
miaomiao 6ce6438854 feat: 代理内网白名单(proxy_allowed_hosts CIDR)+ fix: Cloudflare 验证码首次加载卡死/登录注册失败后验证码状态重置 2026-08-09 03:48:19 +08:00
miaomiao 2b748fc48e fix: 工作台审计修复(终端流控/exit重生/无障碍/ARIA/cookie token/安全纵深)+ 前后端联调整合 2026-08-08 03:14:51 +08:00
miaomiao 717ebc44f4 feat: 工作台 VSCode 风格改造 + Web 终端(双侧栏/活动栏/xterm/dnd-kit/resizable-panels/终端 API) 2026-08-08 02:31:42 +08:00
miaomiao 0ae8815f33 feat: 工作台记事本(浮窗↔固定侧边栏双形态/自动保存/文件管理器/实体文件存储)
- routes/notes.js CRUD + 文件名安全校验 + 实体 .txt 存储 workspace/
- NoteEditor 浮窗(可拖拽)↔固定(280px)切换,📌 工具栏入口
- 编辑器 900ms 防抖自动保存 + Ctrl+S + dirty 指示
- 文件管理器:新建/重命名/删除/空态/错误态
- server 挂载 /api/notes,gitignore workspace/
2026-08-07 22:38:10 +08:00
miaomiao 9400f76c7e fix: 工作台审查修复 - 短 TTL proxy token/沙箱剥离/加载提示/独立刷新/键盘导航/懒加载分包 2026-08-07 21:57:56 +08:00
miaomiao 4f89c63b28 feat: 壁纸开关(后台主题设置可启用/禁用壁纸) 2026-08-07 15:24:09 +08:00
miaomiao 632d19f49e feat: 后台评论管理 + 评论设置开关 + 技术债清理
- 后台评论管理页(待审核 Tab + 通过/拒绝),侧栏入口
- 站点设置加评论审核模式/评论邮件通知开关
- Material Icons 自托管(本地 woff2)+ ssr 图标修复
- /admin* 路由收紧为显式两条
- 删除死代码 routes/links.js
- 密码箱改 PIN 增加数据丢失警告确认
2026-08-07 02:14:07 +08:00
miaomiao ad8883cc61 feat: 博客功能后端 - 搜索/RSS/标签/归档/views/点赞/评论增强/备份
- migrateSchema v2: tags/views/parent_id/status 列 + post_likes 表
- 接口: search/tags/tag/archive/prevnext/点赞三连/评论审核三连/feed.xml
- 评论: 嵌套回复/审核模式(comment_moderate)/限流/邮件通知(comment_notify)
- cli backup 命令 + status 显示最近备份;backups/ 入 gitignore
- ssr blogSSR 阅读量计数;settings 白名单补新键
2026-08-07 01:57:01 +08:00
miaomiao c2ca0f2327 feat: 页脚三样式(经典/分栏/玻璃)+ 后台样式编辑卡 + 博客页首屏修复
- Footer.jsx 按 footer_style 渲染三变体(含 Powered by RainnyaWeb + 版权)
- 后台站点设置页脚卡:样式选择 + 按样式显示可编辑字段(分栏导航固定不可编辑)
- db 默认值 footer_style/copyright/powered/desc;settings 白名单接入
- 博客页移动端内容优先排列(首屏可见标题)
2026-08-07 01:44:12 +08:00
miaomiao b29fbcdcfc fix: 面板嵌入 proxy 模式支持 query token(iframe 无法带 header) 2026-08-06 23:20:25 +08:00
miaomiao f7dd4163b2 P4: 审查收尾 - 第三方验证码闭环/导航指向/验证码统一校验 2026-08-06 23:01:52 +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 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 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 bd0c0442ab feat: add public settings endpoint and update settings retrieval in frontend 2026-07-01 19:41:06 +08:00
shanshuilala 73e145df07 v1.1.1: captcha refactor, Turnstile support, SEO, forum boards, icon fixes 2026-06-21 18:05:05 +08:00
shanshuilala 6ffbf19aff Refactor forum.js for improved post and category handling; add sub-category support and enhance captcha verification in login and registration; implement update check and run functionality in server.js; improve captcha generation with noise and difficulty adjustments. 2026-06-21 00:54:49 +08:00
shanshuilala 2e6eeadfc1 feat: 增加数据库导入功能,支持从旧版 RainWeb 导入数据,优化验证码处理逻辑 2026-06-20 21:57:04 +08:00
shanshuilala 608adac6d4 feat: add content rendering and article writing features
- Implemented a content renderer in `render.js` to handle Markdown and custom tags for images and files.
- Created a new article writing page in `write.html` with a form for title, excerpt, and content, including upload functionality for images and files.
- Added server-side rendering functions in `ssr.js` for blog and forum posts, including support for generating a sitemap.
2026-06-20 18:19:06 +08:00