XIUNOX v1.1.7 - 2026-08-18 17:00
在此之前更新的请重装下(/admin/?online_upgrade.htm) 重装当前版本,然后走下数据库升级(/admin/?upgrade.htm)
下载地址:https://www.dalao.net/codebucket/41010/xiunox.htm
feat: 一键关闭插件 + 粘贴富文本清理 + 权限修复 + Bug 反馈指南
- 新增一键关闭所有已启用插件功能(disable-all 路由),前端按钮 + JS 确认弹窗 + AJAX 批量禁用 + Toast 提示
- 新增 cleanPastedHtml() 粘贴 HTML 富文本自动清理,阈值 100KB 触发,剥离 Office 命名空间/样式/脚本等,保留语义结构,智能转换粗体斜体为语义标签,支持失败回退
- 修复 tableExists() 表前缀取值 bug(改用 db_check_table_exists()),非 bbs_ 前缀站点免审权限不再静默失效
- 权限迁移补 3 个免审字段(allow_direct_post/reply/profile)到 group_permission 表
- 优化发帖编辑器性能和速度,ProseMirror 渲染性能优化
- 新增 Bug 反馈实用手册
- 新增 5 项一键关闭插件语言包
v1.1.7 - 2026-08-18 15:00
版本说明: API 中间件层精简重构 + 个人中心模板体系整合 + 安全模块全面优化 + 搜索排序与 IP 查询 —— 移除 6 个 API 中间件类(认证/权限/消毒/错误处理/查询构造器),个人中心删除 10+ 旧模板并整合为统一布局,安全服务(审计/报告/配置/敏感词)全量优化,插件市场增强与通知类型注册表化,在线升级服务改进,新增搜索排序、IP 归属地查询页,管理员/用户登录时效可配置
⚠️ Breaking Changes
-
移除 API 中间件层:删除 ApiAuthContext、ApiContext、ApiErrorHandler、ApiPermissionMiddleware、ApiSanitizer、QueryBuilder 六个类,相关认证/权限/消毒逻辑已内联到路由层,二次开发依赖这些类的插件需适配
-
移除 browser 路由:删除 route/browser.php 及相关模板/图标,浏览器判断逻辑不再独立提供
-
个人中心模板重构:删除 my.htm、my.template.htm、my_password.htm、my_feed*.htm、my_notify.template.htm、my_thread.template.htm、user.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)
-
URL 兼容修复:IP 参数从 $_GET 改为 REQUEST_URI 正则提取,兼容双 ? 格式(/?ip.htm?ip=xxx)下 Xiuno xn_url_parse 不覆盖 $_GET 导致的参数丢失;表单改 JS 拼接 URL(处理 url_rewrite_on=0 时 url('ip') 已含 ?)
-
空输入优化:无 IP 输入时整块隐藏查询结果区,避免显示空白错误提示
搜索排序功能
-
搜索结果排序 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:适配新通知类型体系
在线升级页错误提取与复制功能
-
错误信息提取 admin/view/htm/online_upgrade.htm:新增 extractErrorMessage() 从非 JSON 响应(HTML 错误页、维护模式、CSRF 拦截)中提取人类可读错误信息(依次提取 <title>、<h1>、.alert/.message、<body> 纯文本),避免前端直接显示 HTML 源码
-
错误框渲染 admin/view/htm/online_upgrade.htm:新增 renderErrorBox() 渲染带复制按钮的错误框,支持 wrapAlert 参数适配容器场景
-
复制功能 admin/view/htm/online_upgrade.htm:新增 copyErrorText() + fallbackCopy(),兼容 Clipboard API 与 execCommand 旧浏览器兜底
-
全链路替换 admin/view/htm/online_upgrade.htm:checkUpdate、runPreflight、runNextStep、reinstall 四个入口的错误显示统一走新逻辑
-
多语言包 lang/zh-cn|en-us|zh-tw/bbs_admin.php:新增 4 项语言包(admin_online_upgrade_html_response、admin_online_upgrade_copy_error、admin_online_upgrade_copy_ok、admin_online_upgrade_copy_failed)
文档体系扩充
-
存储驱动扩展指南 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 中间件层:删除 ApiAuthContext、ApiContext、ApiErrorHandler、ApiPermissionMiddleware、ApiSanitizer、QueryBuilder,认证/权限/消毒/错误处理逻辑内联到 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.htm、my.template.htm、my.common.template.htm、my_password.htm、my_favorite.template.htm、my_feed*.htm、my_notify.template.htm、my_thread.template.htm、user.template.htm、browser.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:升级服务容错与逻辑增强
-
tablepre 修复 lib/UpgradeService.php:表前缀统一从 db 对象属性取(conf['db'] 下无 tablepre 键,嵌在 db.{type}.master.tablepre),构造时初始化 $this->tablepre,替换所有 18 处 $this->conf['db']['tablepre'] ?? 'bbs_' 引用,修复升级流程全部 SQL 使用默认 bbs_ 前缀导致表名不匹配的根因 bug
-
版本号读取修复 lib/UpgradeService.php:targetVersion 不用 XIUNOX_VERSION 常量初始化(OPcache validate_timestamps=0 时持有旧字节码,extract 后常量不可在同进程重定义),改构造函数从磁盘 version.php 直接 preg_match 读取真实版本号
-
升级 AJAX CSRF 修复 admin/view/htm/upgrade.htm:升级 AJAX POST 缺少 csrf_token 字段,被 admin/index.inc.php 中央化 CsrfService::check() 拦截报 CSRF token verification failed;模板注入 $csrfToken 给 JS,data 显式带上 csrf_token
后台路由与视图优化
-
后台路由全量更新(19 个):ai、api、attach、audit、banned_ip、credits_rule、forum、group、index、online_upgrade、other、plugin、plugin_scanner、security、setting、theme、thread、upgrade、user
-
后台视图更新(18 个):ai_logs、ai_providers、api_debug、api_doc、api_settings、group_list、online_upgrade、other_cache、plugin_list、setting_smtp、setting_upload、thread_recycle 等
-
后台入口 admin/index.php:提前写入语言包,修复动态覆盖后 lang() 取不到 bbs_admin 键的问题
-
AI 服务 lib/AIService.php:AI 服务逻辑优化
核心框架与基础设施
-
XiunoPHP 框架(12 文件):cache.func.php、cache_file.class.php、cache_memcached.class.php、cache_redis.class.php、db.func.php、db_pdo_mysql.class.php、db_pdo_sqlite.class.php、misc.func.php、xiunophp.min.php、xiunophp.php、xn_html_safe.func.php、xn_send_mail.func.php
-
数据模型(9 文件):attach、email_log、forum、misc、plugin、route、user 等
-
服务层(3 文件):AttachmentService、CreditsRuleService、ForumService
-
前台路由(13 文件):ai、attach、captcha、forum、forum_index、my、notice、post、rank、search、thread、user 等
-
前台视图 footer.inc.htm、message.htm、post.htm、thread_js.inc.htm:模板适配
-
前端脚本 xiuno-modern.js、bbs.js:前端逻辑更新
-
错误处理 lib/ErrorHandler.php:异常处理增强
多语言包同步
-
简体中文 lang/zh-cn/bbs_admin.php、bbs_common.php、bbs_install.php
-
繁体中文 lang/zh-tw/bbs_admin.php、bbs_common.php、bbs_install.php
-
英文 lang/en-us/bbs_admin.php、bbs_common.php、bbs_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 键的问题
-
维护模式验证码放行 model/misc.func.php:维护模式下 captcha 路由放行 generate/verify(登录页仍可请求/校验验证码,验证码内容不敏感)
🗑️ 移除
-
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 — 旧用户页模板
📊 统计
XIUNOX 基于 Xiuno BBS 打造的现代化重构版本 !
https://github.com/domidesign/xiunox
给楼主投上 1 枚硬币
当前您的硬币余额:0