xiuno5版本程序
欢迎大家跟帖反馈
您的反馈会帮助xiuno5持续更新
QQ群:399036474
Xiuno bbs 5.0「超浓缩版」
一个被重新盘过、捋过、瘦过身的 Xiuno BBS。
原版 4.0.4 在 PHP 8 上跑起来的样子,就像让老爷爷去跑马拉松——能跑,但每一步都让人捏把汗。
现在,它被灌了能量饮料、换了跑鞋、还偷偷剪了个刘海。欢迎来到 **Xiuno BBS 5.0**。
一、一句话介绍
这是基于 Xiuno BBS 4.0.4 深度改良的论坛系统,代码里它自称 5.0,我们决定不谦虚,就认了。
它保留了原版"极简、快速、可玩性强"的基因,同时把**安全、兼容、体积**这三座大山挨个平了。
二、它的优势(我们凭什么敢叫 5.0)
1. 跑得动、跑得稳:PHP 8.1 ~ 8.4 全兼容
原版是 2016 年的老骨头,遇上 PHP 8 的"严格模式"直接满地打滚(`deprecated` 警告多到能当背景音乐)。我们做了全面适配:
全部 PHP 文件通过 PHP 8.4 语法检查(lint 0 错误)**,E_ALL 全开加载 **0 警告**。
修复了 `is_email()`、`is_password()` 的越界长度校验,修好了 `decrypt()` 名称歧义(人家真名是 `xn_decrypt`)。
session 读取未定义键不再抛异常——以前是"一碰就炸",现在是"碰了当没碰"。
一句话:PHP 8.4 下跑起来,安静得像个成熟的成年人,不再像个青春期少年到处报错。
2. 安全加固:把漏洞焊死
原版在安全这块,基本属于"门没锁,但也没人偷"的乐观主义。现在不一样了:
| 加固项 | 干了啥 |
| **CSRF 全站防御** | 所有 POST 自动校验令牌(`hash_equals`),表单自动注入隐藏 token,AJAX 自动携带,前后台通杀 |
| **登录防爆破** | 5 次失败 / 10 分钟拉黑,暴力破解者当场体验"踢到铁板" |
| **XSS 围剿** | `jump()` 修复伪协议拦截 + JS 转义 + href 转义;`message()` 输出全部转义 |
| **文件解压防穿越** | `xn_unzip()` 封死 zip-slip,压缩包再也不敢越狱 |
| **反序列化加固** | `unserialize` 只放行白名单类,恶意对象滚粗 |
| **Cookie 安全** | `HttpOnly` + `SameSite=Lax`,会话被偷?没那么容易 |
| **防开放重定向** | 登录回跳 URL 全部经过安全校验,钓鱼链接当场失业 |
| **附件鉴权前置** | 先验证身份再看数据,顺序对了,漏洞就少了 |
> 防御姿势总结:以前是"裸奔"式上网,现在是"穿了三层防护服还戴头盔"。
3. 瘦身成瘾:体积砍掉一半多
我们对体积的执念,已经到了"看啥都想减"的程度:
- **项目原始大小:2.72MB → 1.44MB(-47%)**
- **交付压缩包:1.07MB → 577KB(-46%)**
- **PHP 全量代码仅 682KB**,运行必需 568KB,稳稳压进 1MB 以内——你要求的,我们做到了
具体瘦身动作(个个都是狠活):
| 项目 | 原大小 | 现大小 | 说明 |
| PHPMailer 5.2.1 | 110KB | **8KB** | 整包替换为原生 SMTP 实现,发信功能一个不少 |
| jquery 3.1.0 | 264KB | **86KB** | 换官方压缩版,功能完全一致 |
| bootstrap 4.0.0 | 115KB | **49KB** | 同上,压缩不减配 |
| popper.js | 81KB | **19KB** | 同上 |
| 模板压缩产物 | 103KB | **65KB** | 重新生成 model.min.php,去注释不留情 |
| 冗余文件 | — | **全删** | 迁移工具、IE 专属补丁、多余字体格式,通通送走 |
4. 邮件系统:原生 SMTP 平替 PHPMailer
原版塞了个 110KB 的 PHPMailer,重得像背着冰箱去寄信。
现在我们用 **8KB 原生 PHP SMTP 实现**把它换掉:
- 接口签名完全兼容,原调用代码一行不用改
- 支持 465(SSL)/ 587 / 25 端口,AUTH LOGIN / PLAIN 认证
- multipart/alternative 邮件、附件,样样齐全
- 已经过模拟 SMTP 服务器端到端验证——不是嘴上说能发,是真的发得出去
> 翻译成人话:以前寄信要雇一队搬运工,现在一个人踩着滑板车就送了。
5. 密码体系:前后台终于对齐了
原版有个"著名"的坑:前台注册/登录用 **md5 串 + salt**,后台建号、安装、CLI 重置却收**明文**,算法两边对不上,结果就是——**你明明记得密码,它非说你错了**。
我们修复了这 4 处不对称点,统一了加密链路,并做了 5 种密码 × 5 条链路的回归测试:
> 以后"创建管理账号登录显示密码错误"这种社死现场,正式成为历史。
6. 极简干净,开箱即用
- 全项目统一 UTF-8,不再有"中文变火星文"的乱码事故
- 安装包保留 `install/`,新环境一条龙装好
- 运行时目录(upload / tmp / log)带占位文件,解压即用
- 无测试残留、无脚手架垃圾、无"开发一时爽、上线火葬场"的遗留文件
三、技术规格速览
| 项 | 值 |
| 基础 | Xiuno BBS 4.0.4 深度改良 |
| 自称版本 | 5.0(不谦虚,就是 5.0) |
| PHP 兼容 | 7.4 ~ 8.4 ✅ |
| 数据库 | MySQL(原生 mysqli) |
| 项目大小 | 1.83MB(原始)/ 679KB(zip) |
| PHP 代码 | 682KB,运行必需 568KB |
| 字符集 | UTF-8 全统一 |
| 安全 | CSRF / XSS / 防爆破 / 防穿越 / 反序列化 / 防开放重定向 全覆盖 |
四、快速开始
1. 解压到你的 Web 目录(记得给 `upload/`、`tmp/`、`log/` 写权限)
2. 浏览器访问站点根目录,跟随 `install/` 向导完成安装
3. 装完进后台,创建管理员账号
4. 恭喜,你现在拥有一个又快又安全又不胖的论坛了
提示:如果之前用旧版本建过账号导致密码对不上,去后台改一次密码,或者用重置工具恢复即可(我们已经把加密链路修齐了)。
五、版权与声明
本"5.0"是社区改良版,精神内核(和大部分骨架)属于 Xiuno 团队。
我们只是把它:**修好了、焊死了、减重了、顺带化了妆**。
六、彩蛋
你以为这就完了?不。
- 版块管理页后台,咱原本配了个 Vue 三级的插件皮肤——虽然你嫌插件多余把它删了,但代码里还留着这份"曾经阔过"的痕迹。
- 全文没有一个"优化后性能提升 XX%"的假数据,因为我们相信:**能跑、不崩、不裸奔、还不胖**,本身就是最好的性能指标。
**Enjoy your lean, mean, secure BBS machine. �**
-
[bbs.xiuno.org]Xiuno5.zip1 声望
回复 (15)