有关javaweb项目中集成druid时有时会出现SQL注入的问题

有关durid 出现sql injection  exception的问题,说明是该有的值意外空了,导致和原有的SQL所表达的意思相悖,现象如下:

这里用的是Mybatis框架

sql语句:

update user
<set>
    <if test="status!=null and status!=''">
         status=#{status}
    </if>
</set>
where useruuid=#{useruuid}

页面中请求用了ajax方式

function save(num){
    var status = num=="2"?"3":num=="4"?"5":"";
    $.post("/common/commonupdate",{"status",status},function(data){
         alert(data.message);
         refresh();
    })
}

这里当status为空字符串时,druid框架就会拦截,并抛出sqj injection exception,sql注入异常,这时的SQL就变为了

update user where useruuid=? 曲解了整个sql要表达的意思,故durid认为是恶意的sql注入异常

总结:

结合上面的例子,可总结出,当我们遇到durid框架抛出的sql注入异常时,通常情况下都是因为该传入的参数变为空,导致整个sql改变了他原有的意思.以此记录,排坑日记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值