1. 注入类型
-- 联合注入
' UNION SELECT password FROM users --
-- 布尔盲注
' AND 1=1 --
' AND 1=2 --
-- 时间盲注
' AND IF(1=1, SLEEP(5), 0) --
-- 堆叠注入
'; DROP TABLE users; --
2. 防御
| 方法 | 说明 |
|---|---|
| 参数化查询 | ? 占位符,预编译 |
| ORM | 框架自动转义 |
| 输入验证 | 白名单校验 |
| 最小权限 | 应用账号只给必要权限 |
| WAF | 检测 SQL 关键字 |
// ❌ 拼接 SQL
String sql = "SELECT * FROM users WHERE name = '" + name + "'";
// ✅ 参数化
String sql = "SELECT * FROM users WHERE name = ?";
pstmt.setString(1, name);
延伸阅读
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。