瀏覽代碼

add sanity check before exec'ing sql

tags/2.0.1
Jonathan Cobb 4 年之前
父節點
當前提交
415f75098d
共有 1 個文件被更改,包括 10 次插入2 次删除
  1. +10
    -2
      wizard-server/src/main/java/org/cobbzilla/wizard/dao/SqlViewSearchHelper.java

+ 10
- 2
wizard-server/src/main/java/org/cobbzilla/wizard/dao/SqlViewSearchHelper.java 查看文件

@@ -98,7 +98,10 @@ public class SqlViewSearchHelper {

try {
final Object[] args = params.toArray();

if (query.contains(";")) {
log.warn("search: query contained ';' returning empty results");
return new SearchResults<>();
}
final ResultSetBean rs = configuration.execSql(query, args);
final List<Future<?>> results = new ArrayList<>(rs.rowCount());
final ExecutorService exec = searchByEncryptedField ? fixedPool(Math.min(16, rs.rowCount())) : null;
@@ -124,7 +127,12 @@ public class SqlViewSearchHelper {
}

if (!searchByEncryptedField) {
totalCount = configuration.execSql("select count(*) "+sql.toString(), args).countOrZero();
final String fromAndWhereClauses = sql.toString();
if (fromAndWhereClauses.contains(";")) {
log.warn("search: query contained ';' returning empty results");
return new SearchResults<>();
}
totalCount = configuration.execSql("select count(*) "+fromAndWhereClauses, args).countOrZero();
return new SearchResults<>(thingsList, totalCount);
}



Loading…
取消
儲存