XIUNOX 1.1.7版本预告 [复制链接]

管理员组

版本说明: API 中间件层精简重构 + 个人中心模板体系整合 + 安全模块全面优化 + 搜索排序与 IP 查询 —— 移除 6 个 API 中间件类(认证/权限/消毒/错误处理/查询构造器),个人中心删除 10+ 旧模板并整合为统一布局,安全服务(审计/报告/配置/敏感词)全量优化,插件市场增强与通知类型注册表化,在线升级服务改进,新增搜索排序、IP 归属地查询页,管理员/用户登录时效可配置

⚠️ Breaking Changes

  • 移除 API 中间件层:删除 ApiAuthContextApiContextApiErrorHandlerApiPermissionMiddlewareApiSanitizerQueryBuilder 六个类,相关认证/权限/消毒逻辑已内联到路由层,二次开发依赖这些类的插件需适配

  • 移除 browser 路由:删除 route/browser.php 及相关模板/图标,浏览器判断逻辑不再独立提供

  • 个人中心模板重构:删除 my.htmmy.template.htmmy_password.htmmy_feed*.htmmy_notify.template.htmmy_thread.template.htmuser.template.htm 等旧模板,统一使用 my.layout.inc.htm 布局

🆕 新功能

IP 归属地查询页(全新)

  • 前台 IP 查询 route/ip.php + view/htm/ip.htm:支持 IPv4/IPv6 归属地查询(数据来源 ip9.com.cn 免费接口,限 60 次/分钟/IP)

  • 查询缓存:10 分钟短缓存,同一 IP 重复查询不重复请求外部接口,规避免费额度限制

  • 输入校验:非法 IP 直接提示错误不请求接口,未传参默认查询访客自身 IP

  • 后台用户列表联动admin/view/htm/user_list.htm 增加前台 IP 查询页链接(自动拼接站点根 URL)

搜索排序功能

  • 搜索结果排序 route/search.php + view/htm/search.htm:支持正序(asc,最早在前)与倒序(desc,最新在前)排序切换

  • SQL 层排序:显式排序时直接在 SQL 中 ORDER BY tid,避免"先 LIMIT 100 再 PHP 排序"在正序场景取到错误批次

  • 排序不计频控:显式传 sort 的请求视为结果重排,跳过搜索频率限制,快速切换排序不被拦截

登录时效可配置

  • 管理员登录时效 admin/admin.func.php + admin/view/htm/security_account.htm:新增 security_admin_login_expire 配置(分钟,默认 60),后台超时自动退出时间可调

  • 用户登录时效 lib/security/SecurityConfigService.php:新增 security_user_login_expire 配置(天,默认 7),bbs_token cookie 有效期可调

  • 安全中心配置页:账号设置页新增登录时效配置项

通知类型注册表化

  • 通知类型注册表 lib/NotifyTypeRegistry.php:通知类型改为可注册式架构,支持插件扩展自定义通知类型

  • 管理后台通知服务 lib/AdminNotifyService.php:配合注册表重构通知投递逻辑

  • 前台通知路由 route/notice.php:适配新通知类型体系

文档体系扩充

  • 存储驱动扩展指南 docs/plugindev/16-storage-driver-extension.md:新增存储驱动扩展开发文档

  • 主题插件开发指南 docs/plugindev/17-theme-plugin-guide.md:新增主题插件开发完整教程

  • OAuth 安全机制 docs/xiunox-mechanism/XIUNOX_OAuth_Security.md:新增 OAuth 安全机制说明

  • 插件开发计划 docs/plugindev/plans/2026-08-07-xnx_fish-pond-v2.md:新增鱼塘插件 v2 规划

🔧 重构与优化

API 层精简重构

  • 移除 API 中间件层:删除 ApiAuthContextApiContextApiErrorHandlerApiPermissionMiddlewareApiSanitizerQueryBuilder,认证/权限/消毒/错误处理逻辑内联到 API 路由

  • API 入口整合 api/v1/bootstrap.php + api/v1/index.php:简化启动流程

  • API 业务路由 api/v1/my.php:个人中心 API 适配重构

个人中心模板整合

  • 统一布局 view/htm/my.layout.inc.htm:个人中心改为统一布局架构

  • 页面整合 my_avatar_page.htm + my_profile.htm + my_security.htm:头像、资料、安全页整合到新布局

  • 路由重构 route/my.php + route/user.php:个人中心路由精简,移除 browser 等冗余路由

  • 删除旧模板my.htmmy.template.htmmy.common.template.htmmy_password.htmmy_favorite.template.htmmy_feed*.htmmy_notify.template.htmmy_thread.template.htmuser.template.htmbrowser.htm

安全模块全面优化

  • 审计服务 lib/security/AuditService.php:审计日志记录优化

  • 安全报告 lib/security/ReportService.php:安全报告生成改进

  • 安全配置 lib/security/SecurityConfigService.php:配置管理增强(新增登录时效配置)

  • 安全服务 lib/security/SecurityService.php:核心安全逻辑优化

  • 敏感词过滤 lib/security/SensitiveWordFilter.php:过滤算法改进

  • CSRF 服务 lib/CsrfService.php:CSRF 防护增强

  • 后台安全页 security_blacklist.htm + security_words.htm:黑名单与敏感词管理页优化

  • 后台审计/安全路由 admin/route/audit.php + security.php:路由逻辑优化

插件市场与扫描器增强

  • 插件路由 admin/route/plugin.php:插件管理路由优化,安装同步作者信息改走 6h 缓存(不再强制刷新阻塞安装流程)

  • 插件扫描器 admin/route/plugin_scanner.php + lib/PluginScanner.php + lib/PluginScannerRules.php + lib/PluginScannerSuggestion.php:扫描规则与建议生成增强

  • 插件市场页 plugin_official_list.htm + plugin_list.htm:官方插件列表与本地插件页微调

  • 官方插件服务 lib/OfficialPluginService.php:manifest 拉取超时从 30s 降至 8s(避免安装/升级被网络长时间阻塞),作者信息同步函数修复

在线升级服务改进

  • 升级路由 admin/route/online_upgrade.php + upgrade.php:升级流程优化

  • 升级视图 online_upgrade.htm + upgrade.htm:升级页交互改进

  • 升级服务 lib/OnlineUpgradeService.php + lib/UpgradeService.php:升级服务容错与逻辑增强

后台路由与视图优化

  • 后台路由全量更新(19 个):aiapiattachauditbanned_ipcredits_ruleforumgroupindexonline_upgradeotherpluginplugin_scannersecuritysettingthemethreadupgradeuser

  • 后台视图更新(18 个):ai_logsai_providersapi_debugapi_docapi_settingsgroup_listonline_upgradeother_cacheplugin_listsetting_smtpsetting_uploadthread_recycle

  • 后台入口 admin/index.php:提前写入语言包,修复动态覆盖后 lang() 取不到 bbs_admin 键的问题

  • AI 服务 lib/AIService.php:AI 服务逻辑优化

核心框架与基础设施

  • XiunoPHP 框架(12 文件):cache.func.phpcache_file.class.phpcache_memcached.class.phpcache_redis.class.phpdb.func.phpdb_pdo_mysql.class.phpdb_pdo_sqlite.class.phpmisc.func.phpxiunophp.min.phpxiunophp.phpxn_html_safe.func.phpxn_send_mail.func.php

  • 数据模型(9 文件):attachemail_logforummiscpluginrouteuser

  • 服务层(3 文件):AttachmentServiceCreditsRuleServiceForumService

  • 前台路由(13 文件):aiattachcaptchaforumforum_indexmynoticepostranksearchthreaduser

  • 前台视图 footer.inc.htmmessage.htmpost.htmthread_js.inc.htm:模板适配

  • 前端脚本 xiuno-modern.jsbbs.js:前端逻辑更新

  • 错误处理 lib/ErrorHandler.php:异常处理增强

多语言包同步

  • 简体中文 lang/zh-cn/bbs_admin.phpbbs_common.phpbbs_install.php

  • 繁体中文 lang/zh-tw/bbs_admin.phpbbs_common.phpbbs_install.php

  • 英文 lang/en-us/bbs_admin.phpbbs_common.phpbbs_install.php

🐛 问题修复

  • 密码迁移误伤修复 lib/UpgradeService.php:修复旧版本 UPDATE user SET password_hash = '' WHERE password != '' 误清空 password 与 password_hash 并存的用户的 bcrypt 哈希,导致 bbs_token 指纹校验失败、用户被强制掉线的问题;密码迁移不再需要任何数据改动

  • 登录态排查日志增强 model/user.func.php:取消 300 秒去重,全量记录每条掉线请求(含请求方法、路由/子动作、来源页、会话/cookie 状态),便于完整还原"用户在做什么动作时被踢"

  • 头像组件修缮 72b4c43:头像上传与裁剪逻辑修复

  • 附件/会话模型修复 72b4c43:附件隔离与会话模型边界问题修正

  • 帖子路由修缮 72b4c43:帖子路由边界情况修复

  • 插件市场官方列表页微调 3c71142:官方列表展示细节修复

  • 在线升级服务修复 15760ce:升级流程稳定性问题修正

  • 用户管理模板修复 15760ce:后台用户管理模板显示问题修正

  • 后台语言包更新 15760ce:多语言文案补齐

  • 插件安装阻塞修复 admin/route/plugin.php:安装时不再强制刷新作者信息 manifest,避免被远程网络拉取阻塞(主源+备源最多等 60s)

  • 后台语言包写入修复 admin/index.php:提前写入 $_SERVER['lang'],修复动态覆盖后 lang() 取不到 bbs_admin 键的问题

🗑️ 移除

  • lib/ApiAuthContext.php — API 认证上下文(内联到路由)

  • lib/ApiContext.php — API 请求上下文(内联到路由)

  • lib/ApiErrorHandler.php — API 错误处理器(内联到路由)

  • lib/ApiPermissionMiddleware.php — API 权限中间件(内联到路由)

  • lib/ApiSanitizer.php — API 输入消毒器(内联到路由)

  • lib/QueryBuilder.php — 查询构造器(不再使用)

  • route/browser.php — 浏览器判断路由

  • view/htm/browser.htm — 浏览器判断模板

  • view/img/browser.gif — 浏览器图标

  • view/htm/my.common.template.htm — 个人中心旧公共模板

  • view/htm/my.htm — 个人中心旧首页

  • view/htm/my.template.htm — 个人中心旧模板

  • view/htm/my_password.htm — 旧密码修改页(合并到安全页)

  • view/htm/my_favorite.template.htm — 旧收藏模板

  • view/htm/my_feed.htm — 旧动态页

  • view/htm/my_feed.template.htm — 旧动态模板

  • view/htm/my_notify.template.htm — 旧通知模板

  • view/htm/my_thread.template.htm — 旧主题模板

  • view/htm/user.template.htm — 旧用户页模板

📊 统计

  • 文件总数:约 183(核心重构 164 + 本次功能新增 19)

  • 提交范围:7be50af → 当前 HEAD(涵盖 72b4c433c7114228fd33115760ce08ff0b8a07e8b8 等)

  • 版本号:version.php 升至 1.1.7

最新回复
  • 小鱼干开发 一级用户组
    中间件层移除这块对插件作者影响不小,之前写过基于 ApiAuthContext 扩展权限的插件,1.1.7 上来估计得跟着改一版。不过逻辑内联到路由层之后调试确实直观很多,少绕好几层。另外登录时效可配置这个点,正好把之前有人反馈的登录过期问题一起解决了,期待正式版。
    6分钟前
  • 晨曦笔记 一级用户组
    中间件层六个类直接砍掉,认证权限消毒全内联到路由层,这改动有点猛。对写过插件的来说,升级前最好先看下适配文档,不然 1.1.7 一上,老代码里 new ApiAuthContext 的地方全得改。个人中心模板整合倒是好事,之前那十几套模板维护起来确实头疼。
    25秒前

请先登录后再回复 登录