防止在oracle“order by”部分的sql注入
发布时间:2020-12-12 13:52:13 所属栏目:百科 来源:网络整理
导读:要获取一些数据我正在创建一个sql查询:) 当然有一些过滤和订购部件。 要获得结果,我使用“NamedParameterJdbcTemplate”,当我需要添加一些东西到“where”部分时,我使用参数映射来防止注入。 但是它与“order by”部分不同,因为没有自动转义(它是sql的一
要获取一些数据我正在创建一个sql查询:)
当然有一些过滤和订购部件。 要获得结果,我使用“NamedParameterJdbcTemplate”,当我需要添加一些东西到“where”部分时,我使用参数映射来防止注入。 但是它与“order by”部分不同,因为没有自动转义(它是sql的一部分)。这个订单部分有时被用户(直接)的数据填充,有时从里面的代码中添加一些额外的排序参数。有一个问题:有时这个排序字段不仅包含列名,而且包含一个sql语句。 现在,通过将一些字符(如’)替换为空字符串手动转义每个用于排序的参数,但是我们为代码设置的一些参数有点复杂。 当您使用jdbc模板时,什么是最好的方式来防止在查询中排序部分的sql注入? 为了防止数据库端的SQL注入,请查看DBMS_ASSERT内置的Oracle软件包: http://docs.oracle.com/cd/B28359_01/appdev.111/b28419/d_assert.htm您可能会发现SIMPLE_SQL_NAME函数将有助于防止您的ORDER BY子句的SQL注入。 希望它有帮助… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |