### 堆叠注入漏洞原理 **正常查询** 假设一个网站的查询语句是这样拼接的: ```sql SELECT * FROM users WHERE id = '用户输入'; ``` 如果用户输入 `1`,执行的 SQL 语句就是: ```sql SELECT * FROM users WHERE id = '1'; ``` **堆叠注入攻击** 如果攻击者在输入框中输入 `1; DROP TABLE users`,并且后端没有过滤分号,最终执行的 SQL 语句就会变成: ```sql SELECT * FROM users WHERE id = '1'; DROP TABLE users; ``` 数据库服务器会按顺序执行这两条语句。第一条是正常的查询,第二条则是**删除 `users` 表**的恶意命令