Commit c23874b3 by 罗胜

sql注入漏洞修复

parent 8a85d9fa
...@@ -550,13 +550,17 @@ public class SoundService { ...@@ -550,13 +550,17 @@ public class SoundService {
if (GConstants.NO.equals(flag)) { if (GConstants.NO.equals(flag)) {
tableName = Constants.FOC_SOUND_RECORDS; tableName = Constants.FOC_SOUND_RECORDS;
} }
stringBuilder.append("FROM ").append(tableName).append("\n") stringBuilder.append("FROM ").append(" ? ").append("\n")
.append("WHERE end_status != 'INIT'\n") .append("WHERE end_status != 'INIT'\n")
.append("AND create_name = '").append(callUser.getName()).append("'\n") .append("AND create_name = ? \n")
.append("AND start_time <= '").append(entity.getEndTime()).append("'\n") .append("AND start_time <= ? '\n")
.append("AND id != '").append(recordId).append("'\n") .append("AND id != ? \n")
.append("ORDER BY start_time DESC"); .append("ORDER BY start_time DESC");
List<Map<String, Object>> soundRecordsList = DBHelper.fetch("foc", stringBuilder.toString()); List<Object> params=new ArrayList<>();
params.add(callUser.getName());
params.add(DateUtil.dateToStr(entity.getEndTime(),"yyyy-MM-dd hh:mm:ss"));
params.add(recordId);
List<Map<String, Object>> soundRecordsList = DBHelper.fetch("foc", stringBuilder.toString(),params);
// 过滤掉了id,所以查出的数据就是重复的 // 过滤掉了id,所以查出的数据就是重复的
if (soundRecordsList != null && soundRecordsList.size() > 0) { if (soundRecordsList != null && soundRecordsList.size() > 0) {
for (Map<String, Object> map : soundRecordsList) { for (Map<String, Object> map : soundRecordsList) {
......
...@@ -206,7 +206,7 @@ public class SoundDbTaskMain { ...@@ -206,7 +206,7 @@ public class SoundDbTaskMain {
Class.forName(driver); Class.forName(driver);
conn = DriverManager.getConnection(url, username, password); conn = DriverManager.getConnection(url, username, password);
pstmt = conn pstmt = conn
.prepareStatement("select MAX(id) AS maxid from " + tableName); .prepareStatement("select MAX(id) AS maxid from dbo.cdr" );
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
while (rs.next()) { while (rs.next()) {
......
...@@ -500,9 +500,9 @@ public class DBHelper { ...@@ -500,9 +500,9 @@ public class DBHelper {
* @param query * @param query
* @return * @return
*/ */
public static List<Map<String, Object>> fetch(String name, String query){ public static List<Map<String, Object>> fetch(String name, String query,List<Object> params){
return fetch(name, query, true); return fetch(name, query, params, true);
} }
/** /**
* 获取所有结果 * 获取所有结果
...@@ -513,7 +513,7 @@ public class DBHelper { ...@@ -513,7 +513,7 @@ public class DBHelper {
* @param byLabel * @param byLabel
* @return * @return
*/ */
public static List<Map<String, Object>> fetch(String name, String query, boolean byLabel){ public static List<Map<String, Object>> fetch(String name, String query,List<Object> params,boolean byLabel){
synchronized(object){ synchronized(object){
PreparedStatement ps = null; PreparedStatement ps = null;
Connection conn = null; Connection conn = null;
...@@ -523,6 +523,9 @@ public class DBHelper { ...@@ -523,6 +523,9 @@ public class DBHelper {
try { try {
conn = getConnection(name); conn = getConnection(name);
ps = conn.prepareStatement(query); ps = conn.prepareStatement(query);
for (int i = 0; i < params.size(); i++) {
ps.setString(i + 1, params.get(i).toString());
}
rs = ps.executeQuery(); rs = ps.executeQuery();
rows = new ArrayList<Map<String, Object>>(); rows = new ArrayList<Map<String, Object>>();
String coluName = null; String coluName = null;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment