这个问题是为了解决我和同事之间的争论.
假设我们在标准LAMP服务器上执行以下查询.
SELECT field1, field2, field3
FROM some_table
WHERE some_table.field1 = 123
ORDER BY field2 DESC
LIMIT 0, 15
Run Code Online (Sandbox Code Playgroud)
现在让我们假设limit子句容易受到SQL注入的攻击.
LIMIT [insert anything here], [also insert anything here]
Run Code Online (Sandbox Code Playgroud)
我的同事的观点是没有办法利用这种注射,所以没有必要逃避它(因为它需要更多的处理能力和东西).
我认为她的推理是愚蠢的,但我找不到如何通过寻找一个例子来证明她的错.
我无法使用,UNION因为查询使用了一个ORDER BY子句,并且运行查询的MySQL用户没有FILE特权,所以使用INTO OUTFILE也是不可能的.
那么,谁能告诉我们谁在这个案子上是对的呢?
编辑:查询是使用PHP执行的,因此使用分号添加第二个查询将不起作用.