公司05年的老代码,安全漏洞扫描没有通过, 很多 sql 都是拼接好的, 直接执行, 没有预处理。
/**
* 执行更新或删除操作,不返回结果
*/
public static void executeUpdate(String sql) throws SQLException {
logger.info("sql:" + sql);
Connection conn = getConnection();
PreparedStatement st = conn.prepareStatement(sql);
st.executeUpdate();
close(conn, st, null);
}
主要是调用的地方太多了。 如果都在调用的地方改的话, 工作量太大了。
如何在这里添加解析sql,把 sql 里的 变量都解出来,换成? , 然后 放到预处理参数里。
可以考虑使用插入触发器,在数据库层面上再过滤一次,而插入触发器,可以遍历表结构,用代码生成器生成。