问题描述

一个老项目,调用接口异常发现org.hibernate.exception.GenericJDBCException: could not prepare statement 错误,往下找到原因是sql有注释

Caused by: java.sql.SQLException: sql injection violation, comment not allow 

原因分析:找到sql

发现是这样的

SELECT
            d.*, @rownum /*'*/
            := /*'*/
            @rownum + 1 AS rownum
        FROM
            (SELECT @rownum /*'*/ := /*'*/ 0) r,

 


解决方案:

把/*'*/注释去掉;
注意去掉之后 @rownum :=@rownum 的 := 需要转义
@rownum \\:=@rownum

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐