注释屏蔽与多语句注入要点
- -- 在 MySQL 里是单行注释,需后跟空格才生效
- 攻击者用 -- 抹掉原 SQL 末尾的条件,保证语法正确
- 分号 ; 可结束当前语句,后面能接第二条 SQL
- 多语句注入危害极大:'; DELETE FROM users; --
- 是否允许多语句取决于驱动,PHP mysqli 默认单条
- SQLite / PostgreSQL 某些接口默认可执行多条
注释屏蔽与多语句注入示例
-- 攻击者利用注释屏蔽后续条件
' OR '1'='1'; --
-- 更狠的:拼接第二条破坏性语句(取决于驱动是否允许多语句)
' ; DELETE FROM users; --
避坑提醒:多语句注入能否成功,取决于驱动配置;但别赌这个,断开'数据'与'指令'才是根本,参数化让分号失去意义。