TypeRenew v1.6.0 Release 现已正式发布,这是基于 v1.5.2 版本的重要迭代版。本次升级聚焦底层内核打磨、安全体系补强、国际化能力落地与后台交互体验优化,持续夯实「轻量、稳定、安全」的核心特性。
核心更新内容
本次更新覆盖底层兼容优化、安全防护加固、后台交互体验、核心功能修复与代码质量优化等多个维度,累计修改 148 个文件,核心优化与修复内容如下:
底层内核兼容优化
- 重构查询缓存体系,新增结果形态键前缀,区分不同返回格式的缓存数据,避免同一条 SQL 多种调用方式互相污染
- 细化表级缓存失效粒度,支持识别写操作与建索引语句的目标表,减少不必要的整命名空间缓存轮转
- 优化数据库结构体检机制,规整整数显示宽度判断逻辑,解决 MariaDB / MySQL ≤ 8.0.18 环境下结构同步反复执行的问题
- 现代化数据库适配器:MySQLi 统一使用 fetch_all,PDO MySQL 直接设置缓冲查询属性,精简 SQLite 与 PostgreSQL 历史兼容分支
- 优化 PostgreSQL 适配器错误处理,修复 SQL 异常时的类型错误问题,完善连接字符串特殊字符转义
- 统一查询构建器参数处理,修正空数组 IN / NOT IN 条件语义,跨数据库行为一致
- 新增邮件队列、邮件退订、密码重置、登录限流四张核心扩展表,统一纳入后台结构体检范围
- 完善日期归档边界校验,无效年月日请求统一返回 404,避免日期越界触发运行异常
- 优化分页器逻辑,补充页大小零值保护,页码钳制在合理范围
- 重构 Feed 生成逻辑,采用流式分段输出,降低大订阅量页面的内存占用,修正发布时间字段准确性
安全防护体系加固
- 新增登录限流保护机制,支持 IP + 账号双维度限流,覆盖登录、密码找回、XML-RPC 等入口
- 后台基本设置页新增登录保护状态面板,展示生效锁定数与跟踪记录,支持管理员一键解除全部锁定
- 强化安装流程安全,新增步骤令牌校验;检测到数据库已存在用户或内容数据时,禁止重新安装
- 补全后台输出转义覆盖,对文章、页面、附件标题等字段统一执行 HTML 转义
- 强化密码处理逻辑,修复密码字段可空导致的类型错误问题,新增密码空字节校验
- 配置文件采用临时文件 + 原子替换方式写入,权限收紧为 0600
- 强化 SQLite 数据库文件保护,连接建立后立即写入目录保护规则
- 扩展 usr 目录 .htaccess 保护范围,新增更多敏感后缀拦截,补充禁用目录索引规则
- 收紧代理头信任策略,仅在显式配置受信代理时读取转发头,防范客户端 IP 伪造
- 新增默认安全响应头,统一输出 X-Content-Type-Options、X-Frame-Options
- 新增评论长度上限配置(默认 8000 字符),超长评论返回 400 错误
- 优化评论发布间隔校验,未审核评论 Cookie 采用 HMAC 签名防篡改
- 强化 Ajax 远程回调安全,采用 HMAC + 时间戳认证机制
- 收紧上传文件扩展名白名单,新增 svg / xhtml / xml 等格式拦截
- 备份与 SQLite 文件名采用安全随机数生成,收紧路径边界校验
后台 UI 与交互体验优化
- 重构后台标签页组件,补充完整 ARIA 属性与键盘导航支持
- 优化深色模式显示效果,修复概要页图表、全屏写作操作条在深色主题下的可读性问题
- 修复后台提示条颜色显示异常,成功、错误、中性三类提示正确区分展示
- 修复撰写页在 769–820px 宽度区间的侧栏布局错乱问题
- 修正安装页 600px 断点重叠问题,避免响应式规则同时命中
- 优化命令面板交互,去重重复命令条目,优化激活状态展示
- 补全后台页面无障碍属性,优化屏幕阅读器浏览体验
- 修复「取消预览」按钮常驻显示问题,仅在预览状态下展示
- 优化上传脚本容错处理,修复上传大小配置异常时的前端语法错误
- 修复备份恢复确认框在翻译后脚本失效的问题,统一采用安全 JSON 输出
- 修复评论、文件搜索框键盘提交不生效问题,搜索框默认输出 name 属性
- 优化登录保护面板布局与缓存状态标签文案
核心功能修复与体验优化
- 修复多语言加载异常问题,国际化链路正式可用
- 新增 usr/langs 目录,随发行包提供 typerenew.pot 语言模板
- 优化 Markdown 解析性能,提升长文本自动链接与占位符替换的处理效率
- 修复 Markdown 未闭合代码围栏内容丢失、脚注遇零值中断等边界问题
- 优化邮件队列统计查询,由多次独立查询合并为单条分组查询
- 精简密码哈希实现,移除冗余的旧格式兼容分支
- 完善会话生命周期管理,登录成功、密码重置成功后自动轮换 Session ID
- 修复注销操作 Cookie SameSite 属性丢失问题
- 优化密钥派生记忆化处理,降低请求初始化阶段的计算开销
- 修复 XML-RPC 截断请求被误判为合法文档的问题
- 完成核心与插件彻底解耦,移除后台脚本中硬编码的插件类名引用
- 恢复多项上游 Typecho 公共 API 与常量,提升第三方主题与插件兼容性
- 优化评论编辑交互,提交过程中禁用按钮,异常状态返回规范 HTTP 状态码
文档与生态更新
- README 文档全面修订,更新项目描述与特性说明
- 新增多语言支持说明,补充语言包使用指引
- 新增常见问题解答板块,覆盖登录限流、反向代理 IP 等典型场景
- 更新社区拓展说明,标注版本适配提示
代码清理与质量优化
- 移除 mbstring、openssl 扩展的冗余降级分支(已列为安装硬性前置条件)
- 清理多处死代码与过度实现,精简密码、密码重置等模块
- 移除核心中多处 function_exists 兜底判断
- 统一代码风格,清理非必要注释与冗余空行
Full Changelog: https://github.com/Yangsh888/TypeRenew/compare/v1.5.2...v1.6.0
下载方式
延续 v1.5.2 版本的分发规则,本次默认仅发布最小化版本(含程序主体 + 默认模板),如需安装各类官方拓展插件,请前往 TypeRenew 插件仓库下载安装。
正式安装包
默认版:TypeRenew-v1.6.0.zip
插件仓库地址:https://github.com/Yangsh888/TypeRenew-plugins
升级包(支持从 v1.5.2 正式版直接升级)
通用升级包:TypeRenew-upgrade-v1.5.2-to-v1.6.0.zip
升级包使用方式
- 升级前请先 完整备份程序文件与数据库,避免因升级异常导致数据丢失或无法恢复
- 登录网站管理后台,在左侧导航栏进入「升级」页面
- 点击「选择升级包」区域,上传已下载的 zip 格式升级包(支持直接拖拽文件至该区域)
- 确认升级信息后点击「上传升级包」,按照页面引导完成在线升级
- 升级完成后刷新页面,按照页面提示完成数据库结构升级,并核对后台显示的程序版本与数据库版本均为最新
提示:如需从原版 Typecho 迁移部署,请参考 README.md 中的相关指引完成操作
反馈方式
如需反馈问题或提出建议,请提交至 GitHub Issues 页面: https://github.com/Yangsh888/TypeRenew/issues
或加入官方 QQ 交流群: 1073739854
暂无评论