本文由 FlintHub 开发文档归档发布。原始文档日期见标题前缀,来源:8月12日的备份/update/3/README-部署说明.md。
SoSite 安全加固更新包(2026-08-08)
本目录包含 7 个安全修复/加固文件,按原目录结构放置。
覆盖方式:将本目录内所有文件按相同路径上传覆盖到站点根目录(如
D:/phpstudy_pro/WWW或服务器对应路径)。
一、覆盖前必须做的事
- 备份服务器现状:
app/与assets/js/(至少涉及本包文件的目录); - 建议顺带备份数据库(本包无数据库结构变更,但权限行为有调整,备份更稳妥)。
二、本包包含的文件(7 个)与修复内容
| 文件 | 修复内容 |
|---|---|
app/Helpers/Segmenter.php | 分词单字过滤:单个汉字不再作为 token 进入搜索索引(防止单字检索拖垮数据库) |
app/Models/Thread.php | 附件删除前文件名白名单校验(防路径穿越删任意文件);batchDelete 改动态占位符 |
app/Models/Blog.php | batchDelete 改动态占位符(不再 intval 拼接 IN 子句) |
app/Helpers/Settings.php | 附件删除白名单校验;孤儿文件清理跳过符号链接 |
app/Core/TemplateCompiler.php | 模板 {if} 表达式禁止函数调用(防模板 RCE),保留 isset/empty 白名单用法 |
app/Helpers/Permission.php | 最小权限:权限体系已启用但某用户组未配置时,不再默认可见全站版块 |
assets/js/editor.js | 粘贴内容立即净化后插入(消除 200ms 窗口期恶意 HTML 渲染风险),保留富文本格式 |
三、部署步骤
- 备份
app/与assets/js/; - 上传本包全部文件,按路径覆盖;
- 若服务器开启 OPCache:等待自动重载或重启 PHP(本包无模板文件改动,模板编译缓存无需清理);
- 浏览器强制刷新后回归验证。
四、回归验证清单
| 功能 | 检查点 |
|---|---|
| 搜索 | 单字(如"我")搜索不报错不卡;正常关键词检索正常 |
| 发帖/回帖 | 富文本粘贴(含格式)正常;粘贴图片正常上传 |
| 批量删除 | 后台批量删帖/删博客正常(占位符路径) |
| 附件管理 | 删除附件、孤儿清理正常 |
| 版块可见性 | 各用户组可见版块与修复前一致(当前站权限已配置,无行为变化) |
| 页面渲染 | 全站页面正常渲染({if} 表达式不受影响) |
本包由 SoSite 安全审计修复(2026-08-08)生成。