为了获取一些数据,我创建了一个sql查询:)
当然,还有一些过滤和排序部分。
为了得到结果,我使用"NamedParameterJdbcTemplate“,当我需要向"where”部分添加一些东西时,我使用参数映射,以防止注入。
但它与"order by“部分不同,因为没有自动转义(它是sql的一部分)。这个订单部分有时会填充来自用户的数据(直接),有时会从内部代码中添加一些额外的排序参数。有一个问题:有时这个排序字段不仅包含列名,还包含一条sql语句。
现在,每个用于排序的参数都是通过将一些字符(如')替换为空字符串来手动转义的,但是我们为代码设置的一些参数对于传递此规则来说有点复杂。
当您使用jdbc模板时,什么是防止sql注入到查询的排序部分的最好方法?
https://stackoverflow.com/questions/9064541
复制相似问题