我有以下代码来使用PG COPY将表格下载为文件:
public void download(String table, Writer responseWriter) throws SQLException, IOException {
try (Connection conn = dataSource.getConnection()) {
CopyManager copyManager = new CopyManager(conn.unwrap(BaseConnection.class));
// SQL Injection can happen here!
String statement = "COPY " + table + " TO STDOUT WITH NULL ''";
copyManager.copyOut(statement, responseWriter);
}
}
显然,此代码容易发生 SQL 注入(表参数是从弹簧 REST 控制器传递的)。当然,我可以做一些手动卫生,但如果有一个“准备声明”的方式在CopyManager中做到这一点,我会更喜欢它。使用春季Jdbc模板的奖励积分。
德玛西亚99
相关分类