规避mybaties全表更新风险

问题描述

<update> 标签中使用了不带条件的更新语句

<update id="updateUser" parameterType="map">
    UPDATE user SET name = #{name}, age = #{age}
</update>

<where> 标签中做了if判断,id如果为null,if语句自动去掉,相当于使用了不带条件的更新语句

<update id="updateUser" parameterType="map">
    UPDATE user
    <set>
        <if test="name != null">name = #{name},</if>
        <if test="age != null">age = #{age},</if>
    </set>
    <where>
        <if test="id != null">id = #{id}</if>
    </where>
</update>

解决办法

代码规范:id不做 null判断

<update id="updateUser" parameterType="map">
    UPDATE user
    <set>
        <if test="name != null">name = #{name},</if>
        <if test="age != null">age = #{age},</if>
    </set>
    <where>
        id = #{id}
    </where>
</update>

引入一些拦截器插件

MyBatis Plus 提供了 BlockAttackInnerInterceptor (阻断攻击Sql解析器) 插件,该插件可以阻止全表更新和删除操作。在一定程度上,保证了数据库数据的安全。
版本要求:MyBatis Plus 3.4.0 版本以上。
注入MybatisPlusInterceptor类,并配置BlockAttackInnerInterceptor拦截器:

@Configuration
public class MybatisPlusConfig {
  @Bean
  public MybatisPlusInterceptor mybatisPlusInterceptor() {
    MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
    interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor());
    return interceptor;
  }
}
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
股份代持的法律风险规避 股份代持的行为是很普遍的,股份代持之所以存在,其意义在于:某些出资人不方便或者基于其他考虑而不愿意显示于公司股东名册或登记机关的备案文件之中,于是找寻一个值得信赖并愿意为自己担任名义股东的人来代持股份。或者,为规避公司法对公司股东人数的限制(有限责任公司50人以下,股份有限公司200人以下),将多名实际股东集中到一起统一由某个实体代为持有,职工持股会以及工会代持股份就是基于此种目的(这两种代持模式因被取缔而成为历史)。信托代持也是一种股份代持,一般用于公司员工股权激励计划的实施,因为有信托法的规制,因而法律地位以及法律关系均比较明确。 实际上,大量存在的是个人对个人的股份代持,这里的个人包括法人与自然人。此种股份代持在最高法院关于公司法的司法解释(三)出台前,其法律地位比较模糊,发生的争议以及纠纷也比较多。因而,如果进行股份代持,除了选择值得信赖的名义股东(当然,委托人也应该是值得信赖的)以外,还需要了解法律对于股份代持法律关系的界定,清楚双方的风险所在,从而制定比较合适的操作方案以及合同条款。 最高法院关于公司法的司法解释(三)有关股份代持的规定是第25条至27条,具体内容附在本文之后以供参考。 一、股份代持的法律要点 对该司法解释上述规定加以总结,可知股份代持的法律要点如下: 1.只要不违反合同第52条规定,实际出资人与名义股东之间签署的股份代持合同即属有效协议,并成为确定双方权利义务的依据。因而,需要注意的事项就有两个:一是需要保证股份代持协议是有效协议,否则,实际出资人将无法依据该协议来确定自己实际出资人的地位,也无法通过该协议来主张权利。二是在该协议有效的条件下,就会成为界定双方权利义务的依据,因而关系重大,合同条款应该慎重斟酌、不可草率行事。 既然落入合同第五十二条规定的范围,合同就会无效,那么,就有必要来了解一下合同法第52条是如何规定的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编写美好前程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值