【码桶项目】XIUNOX

twelve  (UID: 41010) [复制链接]
帖子链接已复制到剪贴板
帖子已经有人评论啦,不支持删除!

76 0

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 中间件层:删除 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)

  • 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.htmcheckUpdaterunPreflightrunNextStepreinstall 四个入口的错误显示统一走新逻辑

  • 多语言包 lang/zh-cn|en-us|zh-tw/bbs_admin.php:新增 4 项语言包(admin_online_upgrade_html_responseadmin_online_upgrade_copy_erroradmin_online_upgrade_copy_okadmin_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 中间件层:删除 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:升级服务容错与逻辑增强

  • 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.phptargetVersion 不用 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 个):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 键的问题

  • 维护模式验证码放行 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 — 旧用户页模板

📊 统计

  • 文件总数:约 188(核心重构 164 + 功能/修复补充 24)

  • 提交范围:7be50af → 1b81574(涵盖 72b4c433c7114228fd33115760ce08ff0b8a07e8b8aabbf0677cdeb01b81574 等)

  • 版本号:version.php 升至 1.1.7

XIUNOX 基于 Xiuno BBS 打造的现代化重构版本 ! https://github.com/domidesign/xiunox
已有评论 ( 0 )
提示:您必须 登录 才能查看此内容。
域名市场
   域名载入中...
创建新帖
自助推广购买广告位
确认删除
确定要删除这篇帖子吗?删除后将无法恢复。
删除成功
帖子已成功删除,页面将自动刷新。
删除失败
删除帖子时发生错误,请稍后再试。