SQL 注入的本质是将用户输入未加过滤地拼接入 SQL 语句,导致攻击者可以执行任意数据库操作。
常见注入手法:
1. 联合查询注入:通过 UNION SELECT 拖取数据;
2. 报错注入:利用数据库报错回显信息;
3. 盲注:布尔盲注与时间盲注;
4. 堆叠注入与二次注入。
工程化防护方案:
1. 全部 SQL 使用参数化(预处理)语句;
2. 输入严格校验,拒绝异常字符;
3. 数据库账户最小权限,禁用高危函数;
4. 部署国联数据库安全防护系统,在协议层实时识别并阻断注入攻击;
5. 配合数据库安全审计系统留存完整证据链。