防止在oracle“order by”部分的sql注入

前端之家收集整理的这篇文章主要介绍了防止在oracle“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注入。

希望它有帮助…

猜你在找的Oracle相关文章