SQL 注入(SQL Injection)是 OWASP Top 10 中最古老也最危险的漏洞之一。
1. 漏洞原理
攻击者在 HTTP 请求中通过参数输入恶意 SQL 语句,骗过服务器执行,从而获取数据库敏感信息。
示例:
-- 原始 SQL
SELECT * FROM users WHERE username = '$username' AND password = '$password';
-- 攻击者输入 username 为: ' OR '1'='1
-- 最终 SQL 变为:
SELECT * FROM users WHERE username = '' OR '1'='1' AND password = '...';
