【发布时间】:2018-01-29 15:08:03
【问题描述】:
我有一个关于 where 条件、order by 和 limit 的查询。我正在使用准备好的语句来设置 where 条件和限制。目前我正在使用字符串追加顺序导致 SQL 注入漏洞。
如果我这样做,我不能使用设置字符串来像这样order by ? ? SQL Order 功能不工作。
查询示例:
SELECT siteid, technology, address, state, status FROM archive LEFT OUTER
JOIN mappings ON siteid = child_site_id order by siteid asc limit ? offset ?
SELECT siteid, technology, address, state, status FROM archive LEFT OUTER
JOIN mappings ON siteid = child_site_id order by siteid asc limit 10 offset 0
我可以通过任何其他方式来避免 SQL 注入。
【问题讨论】:
-
除了连接所需的列之外,您别无选择,但在此之前自己清理字符串。
-
确保该列是已知的可排序列
标签: java prepared-statement sql-injection