欢迎来到 Xiuno BBS

XIUNO BBS重构版 XIUNOX代码审计提示词分享

建议发布升级版/修复版/优化版/现代版/重构版的开发者发布前都用ai跑一下,

或者用计划用4.0.4版本建站但怕有问题的也可以跑一下,跑完以后再让ai根据跑出来的task.md修复。

很简单,选择项目后发送下边的指令就可以。


另外有人问为什么Xiuno X 注册需要邀请码,感觉很不好。

因为XIUNOX版本是完整底层重构,代码总量远超过原版系统,不是可能是一定会有bug,目前虽然已经更新了很多版但肯定还存在大量未排查到的 Bug。

如果现阶段无限制全面开放,有bug的程序会让大量站长遭遇各类功能故障和各种问题。

一方面源码会被随意外流分发,大批使用者出现问题后会吐槽指责开发者做这么垃圾的程序;
另一方面多数拿到源码的人只自用,不会主动提交 bug 反馈,问题长期无法收集、修复,最终形成恶性循环。

因此采用邀请码小范围内测,精准收集有效反馈、批量修复漏洞,等整体系统打磨稳定后,再对外开放注册。

而且现在小范围内测,还是有很多人遇到问题不反馈或者跑qq反馈。有时候反馈的都是重复问题。还有一些觉得问题多,抱怨一下然后吐槽你一通说懒得反馈不用了。 开源本身是耗精力的,但消耗体力和时间还好,遇到这些消耗热情的更难受。
 # 任务:XiunoX 上线前代码审计(生成任务文件)

## 角色设定
你是一位资深 PHP 安全审计专家,熟悉论坛系统常见漏洞、PHP 8 特性、XSS/SQL 注入/权限越权等安全风险。

## 项目背景
XiunoX 是基于 Xiuno BBS 4.0.4 重构的轻量论坛系统,技术栈为 PHP 8.0+、MySQL 8.0+、Bootstrap 5.3、HTMX、TinyMCE 7。项目即将上线,现需对全部代码进行系统性安全审计,并按问题类型生成独立任务文件。

## 审计原则
1. **先分析,不修改**:本轮仅输出审计任务文件,不修改任何代码。
2. **灵活判断**:如果某个变量你无法确定来源,标注"待人工确认"。
3. **区分上下文**:根据输出位置(文本节点、HTML属性、JS环境、URL)采用不同的判断标准。
4. **结合实际**:如果某个输出已在项目中被转义函数包裹(如 `e()`、`_e()`、`htmlspecialchars()`),确认其实现正确后标注为"安全"。

## 任务输出要求

按问题类型生成独立的审计任务文件,每个任务包含:
- `task.md`:任务概述、背景、目标、检查范围
- `spec.md`:详细的检查规则和判断标准(分条目列出)
- `findings.md`:该任务发现的具体问题清单(文件路径 + 行号 + 问题描述 + 修复建议)
- `fix-guide.md`:通用修复方案和代码示例

**注意**:只输出任务文件内容,不需要输出目录结构示意。

---

## 审计任务清单(高优先级,必须在上线前完成)

### 任务 01:XSS 防护(模板层)

**spec.md 检查规则:**

1. 扫描 `/view/htm/` 下所有 `.htm` 文件(含 `admin/` 子目录),找出所有 `` 和 `` 输出。
2. 判断是否使用了 `htmlspecialchars()` 或项目的自定义转义函数(如 `e()`、`_e()`、`safe()`)。
3. 检查 HTML 属性中的输出(`value=""`)是否转义了引号(需使用 `ENT_QUOTES`)。
4. 检查 `` 标签内的输出是否使用了 `json_encode()`。
5. 检查富文本内容(帖子正文、公告内容)是否使用了 HTMLPurifier 过滤。
6. 不需要转义的情况:纯数字 ID、系统常量、已过滤的富文本,标注为"安全"。
7. 对于无法确认来源的变量,标注"待人工确认"。


### 任务 02:SQL 注入防护

**spec.md 检查规则:**

1. 扫描 `/model/`、`/service/`、`/route/` 目录下所有 PHP 文件。
2. 识别字符串拼接的 SQL(如 `"SELECT * FROM user WHERE id=" . $id` 或 `"WHERE uid=$uid"`),标注为**高危**。
3. 识别是否使用了参数化查询(PDO prepare / bind)。
4. 检查 `ORDER BY`、`GROUP BY`、`LIMIT` 等动态字段是否做了白名单验证。
5. 检查 `db_find()`、`db_query()` 等封装函数是否正确使用了参数绑定。
6. 对于使用 `quote()` 或 `escape()` 的地方,确认其实现是否安全。


### 任务 03:权限与越权控制

**spec.md 检查规则:**

1. 扫描 `/admin/` 目录下所有 PHP 文件,检查开头是否验证了管理员身份(`$groupid == 1` 或 `is_admin()`)。
2. 扫描 `/api/` 目录下所有 PHP 文件,检查是否验证了 Token 或 Session。
3. 扫描 `/route/` 目录,检查删除、修改、移动等操作是否验证了当前用户对资源的所有权(如 `$thread['uid'] == $uid` 或调用权限服务)。
4. 检查是否存在直接通过 `$_GET['tid']` 操作资源而未做权限判断的情况。
5. 对于管理员后台的敏感操作(删除用户、修改配置),检查是否有 CSRF Token 或二次密码验证。


### 任务 04:CSRF 防护

**spec.md 检查规则:**

1. 扫描 `/view/htm/` 下所有包含 `
0 0 0
复制成功