转义与纵深防御要点
- 转义:把单引号等危险字符前加反斜杠破坏结构
- PHP 用 mysqli_real_escape_string 处理特殊字符
- LIKE 里的 % 和 _ 要用 addcslashes 单独转义
- 输入校验:白名单正则 + 长度限制,源头掐掉异常
- 最小权限:应用库账号只给必要权限,降低破坏面
- 生产关闭详细报错回显,避免泄露表结构
转义与纵深防御对照
| 手段 | 做法 | 定位 |
|---|---|---|
| 参数化查询 | 占位符 ? 与数据分离 | 根本手段,首选 |
| 输入校验 | 白名单正则 / 长度限制 | 第一道闸 |
| 转义 | mysqli_real_escape_string | 兜底,非首选 |
| 最小权限 | 应用库账号只给必要权限 | 降低破坏面 |
| 关闭错误回显 | 生产不暴露 SQL 报错 | 防信息泄露 |
避坑提醒:转义能挡大部分注入,但依赖开发者不漏调、不漏转;它只是兜底,真正的底线还是参数化查询。