2026-06-06 数据库查询安全加固
本次对数据库封装层做低风险安全加固,降低后续二次开发引入 SQL 注入的概率。
主要改动:
- 数据库标识符白名单校验
- 文件:xiunophp/db.func.php
- 新增表名、字段名、列选择、条件操作符校验。
- 表名/字段名仅允许字母、数字、下划线,且必须以字母或下划线开头。
- 条件操作符限制为
>、<、>=、<=、<>、!=、LIKE。
- 查询构造函数加固
- 文件:xiunophp/db.func.php
- 加固
db_insert()、db_replace()、db_update()、db_delete()、db_read()、db_find()、db_find_one()、db_count()、db_maxid()、db_truncate()。
- 当表名、字段名、排序字段或操作符非法时,直接返回
FALSE,不再拼接 SQL。
- MySQL / PDO 查询列名加固
- 文件:xiunophp/db_mysql.class.php
- 文件:xiunophp/db_pdo_mysql.class.php
find() / find_one() 的列选择由直接 implode() 改为安全字段引用。
- 条件和排序构造失败时,不再继续执行 SQL。
- 浏览量更新参数整数化
- 文件:model/thread.func.php
thread_inc_views() 中对 tid 和增量 n 做整数化和有效性检查。
影响说明:
- 不改变现有正常数据表和字段命名方式。
- 对使用非法动态字段名、非法排序字段、非法操作符的二次开发代码会返回
FALSE,避免危险 SQL 被执行。
- 不影响新安装流程,无需数据库结构变更。
欢迎大家加入QQ交流群:785017513