12. SQL 注入与安全防护

SQL 注入攻击类型、参数化查询、ORM 安全与最小权限原则

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);

延伸阅读

继续阅读

探索更多技术文章

浏览归档,发现更多关于系统设计、工具链和工程实践的内容。

全部文章 返回首页

「database」更多文章

  1. 缓存架构演进之路:从单机 Redis 到亿级分布式多级缓存体系
  2. Redis 7.x 重大新特性与架构升级深度解析
  3. Redis 消息队列深度对比:Pub/Sub、Streams 与 Kafka/RabbitMQ 选型指南