gpt4 book ai didi

sql - 防止oracle "order by"部分中的sql注入(inject)

转载 作者:行者123 更新时间:2023-12-03 14:59:13 28 4
gpt4 key购买 nike

为了获取一些数据,我正在创建一个 sql 查询:)
当然还有一些过滤和排序部分。

为了得到结果,我使用“NamedParameterJdbcTemplate”,当我需要在“where”部分添加一些东西时,我使用参数映射来防止注入(inject)。

但它与“order by”部分不同,因为没有自动转义(它是 sql 的一部分)。此订单部分有时会填充来自用户(直接)的数据,有时会从内部代码中放入一些额外的排序参数。有一个问题:有时这个排序字段不仅包含列名,还包含一条sql语句。

现在通过将一些字符(如')替换为空字符串来手动转义每个用于排序的参数,但是我们为代码设置的一些参数要通过此规则有点复杂。

当您使用 jdbc 模板时,在查询的排序部分中防止 sql 注入(inject)的最佳方法是什么?

最佳答案

为了帮助防止数据库端的 SQL 注入(inject),请查看 DBMS_ASSERT内置 Oracle 软件包:http://docs.oracle.com/cd/B28359_01/appdev.111/b28419/d_assert.htm

您可能会找到 SIMPLE_SQL_NAME功能将有助于防止您的 ORDER BY 的 SQL 注入(inject)。条款。

希望能帮助到你...

关于sql - 防止oracle "order by"部分中的sql注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9064541/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com