【发布时间】:2016-10-13 15:15:35
【问题描述】:
我在一个 PHP 项目中使用 MeekroDB。对于某些查询,我需要传递任意字段名称进行排序。 meekro 网站上没有 ORDER BY 子句的示例。
如何安全地传递字段名称并避免 SQL 注入漏洞?我意识到我可以事先使用有效字段列表检查每个字段名称,但我试图让这段代码更概括为一个基本的“get”函数:function get(Array $filters, Array $sort_by)
在传递字段名称时,%b 占位符(反引号)是否足以防止任意代码注入?
例如:
SELECT * FROM table1 ORDER BY %b
或者对于多个字段:
SELECT * FROM table1 ORDER BY %lb
这样安全吗?
另外,我怎样才能根据需要任意包含 DESC 或 ASC 修饰符?
【问题讨论】:
标签: php mysql sql-injection meekro