假设我有一个这样的易受攻击的查询:
var q = 'SELECT x FROM y WHERE id = ' + req.body.id + ' ORDER BY date DESC;';
出于这个问题的目的,req.body.id
可以是任何未经类型检查的整数参数,因为 HTTP 上的所有内容都是字符串。
由于 MySQL 扩展默认禁用多语句查询,因此我不能执行以下操作:
http://example.net/foo?id=1;INSERT INTO y VALUES (things...);--
是否可以使用这个易受攻击的查询执行数据操作语句(例如 INSERT、UPDATE、DELETE)?