84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
SELECT * FROM table1 where condition1=1 ORDER BY $sortField$ $sortOrder$ limit 0,20
$sortField$和$sortOrder$可以写任意sql
$sortField$
$sortOrder$
这条sql有被注入的风险吗
业精于勤,荒于嬉;行成于思,毁于随。
只要你直接用变量来生成sql语句,都有被注入的风险
sortField="id"sortOrder="; drop table users; --"
你的sql就会变成
SELECT * FROM table1 where condition1=1 ORDER BY id; drop table users; -- limit 0,20
你考虑问题的方向不正确。
防注入的正确做法是使用官方驱动的参数模式,因为只有官方自己的东西,才知道应该怎样避免被注入。
如果你自己写SQL,就算现在不被注入,说不定这条链路中所涉及的组件,在以后其中某个组件发生变化,那就会有被注入的风险。
你直接可以拿sqlmap测试一下,它的引擎还是很强大的
只要你直接用变量来生成sql语句,都有被注入的风险
sortField="id"
sortOrder="; drop table users; --"
你的sql就会变成
你考虑问题的方向不正确。
防注入的正确做法是使用官方驱动的参数模式,因为只有官方自己的东西,才知道应该怎样避免被注入。
如果你自己写SQL,就算现在不被注入,说不定这条链路中所涉及的组件,在以后其中某个组件发生变化,那就会有被注入的风险。
你直接可以拿sqlmap测试一下,它的引擎还是很强大的