加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

防止在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注入。

希望它有帮助…

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读