joker901 2020-09-16 17:07 采纳率: 0%
浏览 51

sql注入,预处理前 解析sql

公司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 里的 变量都解出来,换成? , 然后 放到预处理参数里。

  • 写回答

1条回答

  • threenewbee 2020-09-16 17:27
    关注

    可以考虑使用插入触发器,在数据库层面上再过滤一次,而插入触发器,可以遍历表结构,用代码生成器生成。

    评论

报告相同问题?

悬赏问题

  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序