我发现自己需要JDBI(3)中包含的模板引擎。我似乎需要它的原因是因为我有跨越多个数据库的语句(在同一服务器上,通过同一连接),并且这些数据库名称需要来自用户输入。
对于通过绑定参数以外的任何方式,形状或形式将用户输入传递给数据库,我感到非常恐惧。据我了解的模板实现,有必要放弃绑定参数提供的保护。
我担心针对if (dbName.contains(...
或dbName.replaceAll(...
等恶意输入的幼稚保护充其量是不够的。
我想我有两个问题:这是解决此问题的合适方法吗?如果是这样,我应该并且应该采取哪些步骤来最小化将模板与用户输入结合使用所开启的攻击向量?