前端之家收集整理的这篇文章主要介绍了
防止在oracle“order by”部分的sql注入,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
要
获取一些数据我正在创建一个
SQL查询:)
当然有一些过滤和订购部件。
要获得结果,我使用“NamedParameterJdbcTemplate”,当我需要添加一些东西到“where”部分时,我使用参数映射来防止注入。
但是它与“order by”部分不同,因为没有自动转义(它是sql的一部分)。这个订单部分有时被用户(直接)的数据填充,有时从里面的代码中添加一些额外的排序参数。有一个问题:有时这个排序字段不仅包含列名,而且包含一个sql语句。
现在,通过将一些字符(如’)替换为空字符串手动转义每个用于排序的参数,但是我们为代码设置的一些参数有点复杂。
当您使用jdbc模板时,什么是最好的方式来防止在查询中排序部分的sql注入?