gpt4 book ai didi

java - 使用 JOOQ 安全地设置 MySQL 变量和用户输入

转载 作者:行者123 更新时间:2023-11-29 02:11:06 26 4
gpt4 key购买 nike

我正在尝试像这样使用 JOOQ 设置 MySQL 变量。 value 是用户输入。

DSLContext dslContext = DSL.using(connection, dialect);
dslContext.execute("set @myvar :=" + value);

虽然这按预期工作,但我担心通过使用用户输入执行这样的普通 SQL 可能会允许 SQL 注入(inject)。在 JOOQ 中有没有办法用准备好的语句或任何其他更安全的方式实现同​​样的事情?

最佳答案

使用纯 SQL 模板 API: https://www.jooq.org/doc/latest/manual/sql-building/plain-sql-templating

例如如果您使用的是简单的绑定(bind)变量:

 dslContext.execute("set @myvar := ?", value);

或者,如果您想使用更复杂的表达式:

 dslContext.execute("set @myvar := {0}", DSL.val(value));

在幕后,默认情况下,jOOQ 将始终执行准备好的语句。

关于java - 使用 JOOQ 安全地设置 MySQL 变量和用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52195567/

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