置顶 精华 [程序发布] FlintHub 1.5.12 完整安装包发布(附:V1.3.1 → V1.5.12变动说明)

👑Lv.11 元老 🌞 骨干会员
2026-11-08 21:54:53

时间跨度:2026-11-01 ~ 2026-11-08,共 17 个版本。 说明:V1.3.5 之后直接进入 V1.5.0,不存在 1.4.x 系列。 全部版本均无破坏性数据结构变更,可直接在线升级。


V1.3.2(11-01)安全与性能收口

  • 伪装图片拦在落盘前:jpg/png/gif/webp 额外解析一次图像结构头,解不出宽高即拒收(堵 polyglot 攻击)
  • 插件市场安装的版本号参数加白名单,堵路径穿越
  • 安全响应头收敛到唯一出口,补齐缓存页缺失的 3 条 CSP 指令
  • 密码最短长度 6 → 8;后台二次验证有效期上限 30 天 → 7 天
  • 退出登录清 Cookie 补 secure,修 HTTPS 站点「退出后又被自动登录」
  • 限流抢锁失败不再放行;补齐 IPv6 内网段封禁
  • 性能:插件建表语句加内容指纹,命中即不建连、不执行 SQL —— 插件初始化 234255ms → 107123ms
  • 修若干「提示成功但没生效」的瑕疵:编辑帖子权限判断移到写库前、消息中心收发列名、队列重复任务、模板缺失返 500 而非空白 200

V1.3.3(11-01)切主题 / 切语言不再卡

  • 切主题不再 Clear-Site-Data 清整个站点缓存,也不再清空全站页面缓存(缓存本就按主题/语言/摘要三维分键)
  • 游客页缓存 max-age=30 → no-cache,切完立刻生效
  • 语言包加载 33.4ms → 1.44ms(改读 plugins_cache.json,不再逐目录 glob)
  • 静态资源开 gzip:modern.css 106KB → 28.2KB、editor.js 236KB → 74KB
  • ⚠️ 已部署站点需把 gzip 段手动加进自己的 nginx 配置

V1.3.4(11-02)无伪静态可用性修复

  • 修关闭伪静态时约 90 个插件的后台入口全部 404(后台路由注册门控改用 Url::requestPath())
  • 在线聊天室前端 5 处写死根路径改为基于 window.FH_WEB,关伪静态后轮询/发送/撤回不再 404
  • 为 code_repo、icon_generator 的 data/ 补 .htaccess + web.config 防护

V1.3.5(11-02)编辑器修复

  • 选区去重签名与定时器由模块级全局改为按实例挂载,同页多编辑器不再互相干扰
  • 清空或撤销回滚内容后重置签名,划词类插件不再「第一次不动、第二次才出现」
  • Markdown 库懒加载加 15 秒超时兜底,修转换器缓存未失效

V1.5.0(11-03)微内核化 · 博客剥离

  • 博客剥离为独立插件:BlogController、Blog/BlogCategory/BlogComment 模型、app/Views/blog/、后台博客管理全部移出核心
  • 首页与论坛合并:/ 直接由论坛渲染,移除 HomeController 与 app/Views/home/
  • 移除「站点模式」设置与博客封面实时预览
  • 列表排序统一:精华 / 最后回复 / 热度共用一套缓存键后缀(_h _r _t)
  • 新增 Settings::runtimeSet() 供插件校准统计计数;插件启用/停用后自动失效页面缓存
  • ⚠️ 大版本:博客功能需另装 blog 插件

V1.5.1(11-05)插件缓存新鲜度

  • 修插件启用/停用后有时仍按旧状态运行、要再刷一次才生效
  • 修同一秒内连续修改插件信息被误判「无需更新」而静默忽略
  • 插件开发文档同步 1.5.0 之后的新路径结构

V1.5.2(11-05)安全修复

  • 封堵可直接下载的敏感路径:app/ 源码、data/(含 data/extern/ 正文)、release/core/ 镜像、.zip/.bak/.log/.sqlite 等后缀、docs/、点开头文件、根目录一次性运维脚本
  • Nginx / Apache / IIS 三套配置同步补齐
  • 5 个插件 CLI 脚本补「仅 CLI 可调」守卫
  • 改密码 / 改邮箱后立即吊销该用户全部登录状态
  • 修在线升级锁并发覆盖、陈旧锁静默接管
  • 修附件数量上限可被「发新帖 / 编辑回复 / 编辑主题」绕过
  • ⚠️ 升级后请确认站点根的 nginx-server.conf / .htaccess / web.config 已更新

V1.5.3(11-06)插件类名引用修复

  • 修 5 个插件共 11 处仍引用已迁走的 app\Models\Blog(每次调用抛 Class not found,error.log 单日可刷数千条)
  • SQLite 写锁等待 5s → 10s,避免高并发下 database is locked 静默丢写
  • ⚠️ 插件修复不在核心包内,需单独更新对应插件

V1.5.4(11-07)圆角设置 + 导航重整

  • 后台「外观 → 自定义样式」是死功能(全站零渲染点),替换为**「全局圆角」三档预设 + 自定义**
  • 全站 168 处硬编码圆角改走 --mn-radius* 变量,后台调档即时生效
  • PC 导航右侧重整为三个一级项:搜索框 / 个性设置 / 语言
  • 主题设置页精简,并修掉「改一次主题就把界面偏好重置」的潜在覆盖缺陷
  • 恢复 PC 搜索框(删博客时被连带删掉)
  • 论坛首页悬浮按钮去掉无效的「返回」

V1.5.5(11-07)主题轻玻璃质感

  • 8 个配色主题加入轻玻璃质感(三层背景光斑 + 卡片/导航/下拉半透明模糊)
  • 不支持 backdrop-filter 的浏览器自动退回不透明配色,不会出现字看不清
  • 列表项刻意不加模糊(避免几十个合成层导致滚动掉帧)
  • 淡蓝晴空导航保持不透明(半透明后白字对比度只剩 2.97,不合格)
  • 修 PC 悬浮按钮定位:right:20px 相对视口 → 改贴内容区右边缘外侧 34px

V1.5.6(11-07)移动端抽屉空白

  • 修手机上点汉堡按钮抽屉只显示顶部一条、下面全空
  • 根因:抽屉写在 sticky 导航内部,8 个主题的 backdrop-filter 把 fixed 包含块改写成了导航栏(高度只剩 54px)
  • 修法:抽屉整块移出 <nav>,汉堡按钮改 $dispatch 跨作用域通信
  • 顺带修好抽屉层级(z-index:1000 真正生效,盖得住底部导航与悬浮按钮)
  • 插件开发规范升 1.8.2:新增「圆角走变量」「fixed 浮层禁放 sticky/带滤镜祖先」「改完先清缓存」

V1.5.7(11-07)模板瘦身 + PWA 外置

  • 153 块长 HTML 注释改 PHP 注释(不再下发给浏览器,也不再泄露实现细节)
  • PWA 两段内联脚本外置为 assets/js/pwa.js,配置改由 data-* 注入
  • 修掉「关掉 PWA 后已注册的 Service Worker 一直活着」的老 bug
  • 首页 HTML 137,306 → 128,793 字节(−6.2%)

V1.5.8(11-07)插件内核性能重构

  • 插件内核单轮开销 21.3ms → 2.9ms(−86.2%),每请求省约 18ms 纯 CPU
  • 楼层号永久稳定 + ?floor=N 永久链接(删中间楼层后,后面楼层号不再整体前移)
  • 新增「插件 UI 入口开关」10 个入口(可单独关某个插件的某个 UI 位置,不必停用整个插件)
  • 插件错误隔离:单个插件抛异常不再把整页变成半截 HTML,附运行健康档案
  • 新增全局 CSRF 门禁 CsrfGate
  • plugins/ 目录零改动,任何插件无需适配即可升级

V1.5.9(11-08)安全加固

  • 登录锁定从「可锁死任意账号」改为「只能锁自己」(原锁定键只含用户名、5 次失败锁 15 分钟,而 IP 限流是 20 次/15 分钟 → 拦不住)
  • HTTPS 判定收敛为唯一口径(5 处 → 1 处)
  • 验证码升级:PoW 不再是唯一判据,失败 3 次即要求验证码(原逻辑对自动化攻击永远不成立)
  • ?r= 路由别名先归一化再判断,堵 // 绕过后台枚举守卫
  • 权限判定唯一真源:group_id === 4 硬编码 6 处 → 0 处
  • 发版门禁补严:.bak-<时间戳> 副本不再混进包
  • 兼容点:content_review 需同步升到 2.2.1

V1.5.10(11-08)无伪静态站点可用性

  • 修插件商店授权永远走不完:Hub 回跳地址缺 /index.php → 404
  • 伪静态配置读取异常时自动降级,不再出现「全站链接缺 index.php、插件入口点不开」
  • 官方 Hub 站需先把 market_hub 升到 1.3.1,再让客户端升核心

V1.5.11(11-08)伪静态判定改实测

  • 后台伪静态开关「明明开了却显示未勾选」修复(回显改读配置真值)
  • 「检测」按钮不再误报「未开启」,配置=开但规则没生效的站会拿到 http_404 这类具体原因
  • 安全阀从「看请求长相猜」改为服务端实测(只在后台、只在直连形态探,只有 404 才降级)
  • 修关闭伪静态后 4 个插件丢样式(静态资源误用 Url::webBase() → 改 Url::base())
  • 涉及插件:blog 1.0.2、cap_verify 1.3.1、horoscope 1.1.1、market_hub 1.3.2

V1.5.12(11-08)init_after 聚合戳门控

  • /thread/1 单次请求原本要 include 41 个 init_after.php、连带加载 29 个插件类,只为确认「表早就建好了」
  • 新增聚合戳门控(data/runtime/init_after.<指纹>.ok,TTL 60 秒),命中即一个钩子文件都不 include
  • 插件启用/停用/升级、后台清缓存、核心升级 → 戳立刻作废
  • 实测页面耗时 0.2265s → 0.1238s(−45.3%),SQL 语句 84 → 69
  • ⚠️ 行为变更:init_after 语义变为「最多每 60 秒执行一次」,插件里的周期任务节流间隔必须 ≤ 60 秒

升级提醒

  1. 升级前备份 config.php 与 data/。
  2. 升级后到后台「维护 → 清理缓存」点一次(settings_cache.php 不会自动补新键)。
  3. V1.5.2 起站点根的 nginx-server.conf / .htaccess / web.config 有安全规则新增,自行改过这几份文件的需手动合并。
轻量级、高性能、零 MySQL 依赖的PHP社区系统。
| 浏览 95 次 | 回复 1 次

全部回复 (1)

🌴Lv.5 高级 🌛 见习会员
2026-11-09 22:17:04
V1.5.6 那条最值得记:backdrop-filter 会把 fixed 的包含块改成导航栏,这类坑在同一套主题里容易复发。建议顺手排查编辑器工具栏、消息中心弹层、图片灯箱这些 fixed 元素是否也在 sticky 或带滤镜的祖先下,写成规范之外再加一条自检脚本更稳。
#1 楼

请 登录