PHP + PDO 安全查询的 5 个习惯
PDO 是 PHP 访问数据库的标配,但用错照样会注入。下面 5 个习惯请刻进肌肉记忆。
1. 永远用预处理
$stmt = $pdo->prepare("SELECT * FROM posts WHERE id = ?");
$stmt->execute([$id]);
2. 禁止拼接 SQL
任何来自用户的数据(id、搜索词、排序字段)都不能直接拼进 SQL。
3. 关闭模拟预处理
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
4. 用 try/catch 处理异常
5. 关闭错误回显
生产环境 display_errors 必须为 Off,避免 SQL 结构泄露。
安全没有银弹,但预处理是最便宜的那颗。