故障现象或目标
搜索、登录或后台表单需要拼接查询条件。
原因与定位
将输入直接拼入 SQL 会混淆数据与语句结构。
$statement = $pdo->prepare("SELECT id,title FROM ce_articles WHERE id = ?");
$statement->execute([$articleId]);
处理方案
把可变数据放入绑定参数。表名、字段名和排序方向不能直接作为值参数绑定,应由服务端白名单选择。
验证与回退
合法输入能完成查询,特殊字符不会改变 SQL 结构,错误信息不会泄露连接信息。
修改前保留配置与程序版本。验证不通过时恢复本次文件或上一个发布版本,再检查服务状态与访问日志。