SQL Injection
SQL 注入是攻击者将恶意 SQL 片段拼入查询字符串,使数据库执行非预期命令的漏洞。
用途
防止攻击者通过输入操纵 SQL 查询,窃取或篡改数据库。
机制
当用户输入直接拼入 SQL 字符串(如 "SELECT * WHERE name='"+input+"'"),输入 ' OR 1=1 -- 可绕过条件。防御:参数化查询(预编译语句)、ORM、输入验证、最小权限账户。
用例
- 登录绕过(' OR 1=1)
- 数据泄露(UNION SELECT)
- 数据篡改(UPDATE/DELETE)
- 命令执行(xp_cmdshell)
示例
- 输入
admin' --输出Bypasses password verificationComments out the password condition
常见错误
- Building SQL with string concatenation
- Always use parameterized queries