在没有预准备语句的情况下防止SQL注入(JDBC)

rip*_*234 4 java sql sql-injection jdbc prepared-statement

我有一个数据库日志appender,每隔一段时间就会将可变数量的日志行插入到数据库中.

我想以防止SQL注入的方式创建一个SQL语句,但不使用服务器端预处理语句(因为我在每个选择中都有可变数量的行,缓存它们不会有帮助,但可能会损害性能) .

我也喜欢准备好的语句的便利性,并且喜欢它们串联连接.有没有像'客户端准备好的声明'?

Jon*_*eet 7

听起来你没有对最简单的解决方案 - 准备好的语句进行基准测试.你说他们"可能会损害性能",但在你测试之前,你真的不会知道.

肯定会先测试准备好的陈述.即使它们确实会稍微妨碍性能,在您测试它们之前,您将无法知道您是否仍能达到所需的性能.

当你没有尝试过最明显的解决方案时,为什么要花时间寻找替代解决方案呢?

如果您发现准备好的语句的执行计划缓存昂贵的,你可能会发现有调整或禁用的特定DB-方式.