TypeRenew v1.5.2 Release 现已正式发布,这是基于 v1.5.1 版本的维护优化版。本次升级聚焦系统健壮性补强、安全边界加固、后台交互体验打磨与历史遗留问题修复,进一步夯实"轻量、稳定、安全"的核心特性。
核心更新内容
本次更新覆盖底层兼容优化、安全防护加固、后台 UI 体验优化、核心功能修复与代码清理等多个维度,累计修改 92 个文件,核心优化与修复内容如下:
底层内核兼容优化
- 修复 MariaDB 版本号解析异常,优化 DbInfo 版本提取逻辑,正确识别 MariaDB 格式的服务器版本字符串。
- 补齐时间字符串解析能力,当传入 "HH:MM" 格式时间时自动补全秒位,确保 "2026-07-09 14:30" 这类输入能被 DateTime 正确解析。
- 修复分类与标签计数递减可能出现负数的问题,新增 count > 0 条件保护,确保元数据计数始终合法。
- 优化 Schema SQL 生成的引号处理,统一使用单引号空字符串默认值,避免混合引号引发的兼容问题。
- 强化数据库事务机制,新增事务状态追踪,缓存失效延迟至事务提交后执行,减少竞态条件;优化表名规范化逻辑,Mysqli 适配器正确复用传入连接句柄。
- 完善数据库迁移流程,新增迁移锁机制防止并发执行,锁 TTL 缩减至 600 秒;自动回填缺失的列与索引,补齐邮件去重键等历史遗漏项;PostgreSQL 环境下 metas.type 列宽扩展至 32 位。
- 修复选项版本截断逻辑,优化 JSON 存储配置的解码顺序,提升跨版本升级时配置读取的兼容性。
安全防护体系加固
- 强化凭据存储安全,Redis 与 SMTP 密码采用加密存储,配置页提供明确的修改复选框,保存时自动校验缓存连通性。
- 收紧备份接口安全,备份操作强制 POST 请求校验,快照文件名采用随机命名,避免路径探测风险。
- 新增目录保护机制,关键目录自动生成 .htaccess 与 index.html 防护文件,阻断目录遍历与直接访问风险。
- 强化请求输入处理,统一类型检查与强制转换,避免 TypeError 异常;防止跨类型数据库更新,避免数据污染;严格控制错误输出,避免文件路径泄露。
- 加固 XML-RPC 安全边界,XML 字符串统一转义净化,限制 system.multicall 批量调用条目数;收紧访问映射权限,Widget 执行前强制初始化,移除未使用的端点接口。
- 升级密码重置流程,增加更严格的密码长度校验,重置操作事务化执行,完善请求方法校验与 HTTP 状态码返回。
- 邮件输出页面新增安全响应头(X-Frame-Options、X-Content-Type-Options),IP 白名单配置支持标准 CIDR 格式(IPv4/IPv6)。
- 系统配置与永久链接设置页面强制管理员权限校验,防止越权访问。
后台 UI 与交互体验优化
- 重构插件管理页面交互,修复响应式布局问题,版本检测工具栏去重,刷新按钮统一入口,优化错误提示与超时处理,移除不必要的会话缓存。
- 新增内联操作二次确认,补充客户端修饰键操作提示;编辑器禁用 Ctrl+K 快捷键避免误触;后台页面统一引入 form-js 表单脚本。
- 完善缓存配置页诊断能力,新增 lastError 错误上报接口,Redis 与 APCu 驱动均支持错误回显,连接异常时页面直接展示失败原因。
- 优化缓存设置交互,Redis 密码输入框禁用自动填充,已保存密码显示占位符提示;评论嵌套层数输入框增加 2~7 层的数值范围约束。
- 评论管理页表单提交改用原生 submit 方法,解决 jQuery 事件触发不可靠的问题。
- 打磨后台视觉细节,新增间距、语义色、通知栏、表单控件等多组设计令牌,优化评论换行、触摸悬停、MIME 图标等细节表现;分类与标签管理页统一使用 TypechoNotice 提示样式。
- 规范化邮件设置页按钮样式,统一操作分组视觉;默认主题头部补充标准文档注释元数据。
核心功能修复与体验优化
- 修复 Feedback 请求 URL 过滤逻辑,修正 filter 第二参数错误导致的裁剪失效问题。
- 修正 Action 组件的动作表合并顺序,确保 Widget 自定义映射能够覆盖全局配置,动作分发优先级正确。
- 增强 Redis 缓存驱动,支持原生整数计数器,引入 Lua 脚本实现原子自增,优化错误处理链路。
- 改进邮件队列机制,入队操作返回明确成功标志,入队失败时中止投递流程,优化退订链接渲染。
- 统一 Request 参数判空逻辑,
has()与__isset()将空字符串视为不存在,参数校验更加严格;Widget 请求层正确代理 has 方法。 - 限制 Ajax 缓存 TTL 上限,备份与用户编辑模块改用显式 get 检查,提升参数安全性;XML-RPC 接口使用 has() 方法检测 rsd/wlw 标识。
- 强化插件 Profile 文件与方法合法性校验,防止非法插件加载;修正发布时间判定逻辑,菜单标题统一类型转换。
- 路由器异常处理优化,404 状态正确向上抛出;缺失页面、分类、标签、附件时返回规范异常。
- 附件清理操作增加迭代次数限制与权限校验,避免资源滥用。
文档与生态更新
- README 文档全面修订,更新项目描述与生态说明,新增 RenewLocation 官方插件介绍(CZDB 纯真数据库解析能力)。
- 新增社区拓展板块,介绍由社区开发者 @abdulhalim 贡献的 TypeRenew Add-ons 第三方拓展,提供英文、波斯语语言包与 RTL 布局支持。
代码清理与质量优化
- 全量清理非功能性注释与冗余空行,移除大量解释性开发注释与过时 docblock,精简 CSS、JS 与 PHP 文件中的说明性文字,降低代码噪音。
- 通用设置页 IP 来源切换逻辑由 jQuery 改写为原生 JavaScript,减少前端依赖。
- 缓存命名空间版本计算时关闭副作用同步,避免意外写入;通用工具函数统一使用
count()替代sizeof(),提升可读性与一致性。
Full Changelog: v1.5.1...v1.5.2
下载方式
延续 v1.5.1 版本的分发规则,本次默认仅发布最小化版本(含程序主体 + 默认模板),如需安装各类官方拓展插件,请前往 TypeRenew 插件仓库下载安装。
正式安装包
默认版:TypeRenew-v1.5.2.zip
插件仓库地址:https://github.com/Yangsh888/TypeRenew-plugins
升级包(支持从 v1.5.1 正式版直接升级)
通用升级包:TypeRenew-upgrade-v1.5.1-to-v1.5.2.zip
升级包使用方式
- 升级前请先 完整备份程序文件与数据库,避免因升级异常导致数据丢失或无法恢复
- 登录网站管理后台,在左侧导航栏进入「升级」页面
- 点击「选择升级包」区域,上传已下载的 zip 格式升级包(支持直接拖拽文件至该区域)
- 确认升级信息后点击「上传升级包」,按照页面引导完成在线升级
- 升级完成后刷新页面,按照页面提示完成数据库结构升级,并核对后台显示的程序版本与数据库版本均为最新
提示:如需从原版 Typecho 迁移部署,请参考 README.md 中的相关指引完成操作
反馈方式
如需反馈问题或提出建议,请提交至 GitHub Issues 页面: https://github.com/Yangsh888/TypeRenew/issues
或加入官方 QQ 交流群: 1073739854
暂无评论