Mybatis-Plus被恶意CVE一事

news2024/12/24 4:49:46

前言

Mybatis-Plus框架在2024年5月被人在CVE网络安全漏洞库上提交了漏洞,该漏洞可笑无比,但是有趣的是竟然还是被CVE审核确认为了SQL注入漏洞;

发生了什么

见Mybatis-plus发出的申明公告:https://mp.weixin.qq.com/s?__biz=MzA4NzgyMTI0MA==&mid=2649526788&idx=1&sn=5f4cfbe92097cdd45fa8db72e5b9c1f1&chksm=882bacd3bf5c25c5407d6251f4fa6a7ad444c1fcfba5830636cb217b7ffd37324f15bea0000d&token=72916232&lang=zh_CN#rd

简单的说,就是一个网友 写了一个接口,而这个接口的入参是一个Sql语句,并且直接使用Mybatis-plus 提供的QueryWrapperUpdateWrapper 直接将其作为入参拼接;

例如如下接口:

	@GetMapping("/test")
    public void test(String column,String condition) {
        LambdaQueryWrapper<Object> lambda = new QueryWrapper<>().eq(column,condition).lambda();
        mapper.selectList(lambda);
    }

然后社区人员琢磨着是来整活的,这个问题对于一个带点 脑子 的开发者来说过于愚蠢,于是乎就直接关闭了这个issues

不过万万没想到的是提问者竟然直接将这个 “BUG” 上述给了CVE,而CVE竟也通过了;

要知道作为一个开源框架,在CVE的一封修复邮件下来,无论是否修复都很影响这个框架的维护和使用;

因此这个提问者钻篓子的行为,只可能是两种:

  1. 恶意提CVE
  2. 真的影响到他了,比如他真的这样设计然后出了Bug

如果是前者,那么不得不说国内的开源环境真的恶劣;

在无私奉献的同时还要提防各式各样的攻击;

看法

占三派,

  • 一是认为Mybatis-plus 允许Sql直接的拼接操作是BUG
  • 二是认为Mybatis-plus 应该在文档上认认真真进行说明
  • 三是认为这很搞笑

我站队第三者;

第一,关于SQL拼接;

这让我想到了以前用过了好几个数据库框架,DibbotMyBatis-Flex

都存在可供直接拼接的SQL方法;

因为随着JDK版本推进,以及各类语言的语法糖的迭代升级,如今的开发在去掉了繁多的XML配置的同时,也直接引入了各类的链式编程,函数式编程让开发者便捷开发;

注意这里的设计指的是框架开发者在开发人员的角度上实现的功能,因此SQL拼接这种在开发时可见的漏洞,设计者是认为:你既然知道这么使用了,那么我就完全信任你了

(来自issues下的评论:

mybatis-plus 中的 wrapper 不是面向用户的,就像 jdbc 一样,完全信任程序员。一般情况下,用户都不应该能直接与 wrapper 存在交互。

我们不会也没有办法来纠正程序员本身的行为造成的错误!在基础设施层增加不必要的校验会有各种问题出现,自由度也会降低。)

所以至于这是不是BUG:

从CVE的安全角度上来看,这肯定是一个漏洞,而且危险等级还不低;但是:

第二,文档质量

这一点我也很认同,一个框架的文档是在一次次的漏洞中完善的;

这次让提问者找到了这种傻瓜级的BUG未在文档中撇开关系,这也一定是漏洞

官方做法

版权声明:本站原创文章,于2023-12-18,乐云一发表
转载请注明:https://leyunone.com/frame/mybatis/mybatis-plus-bug.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1798340.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【UE5:CesiumForUnreal】——从地球全景聚焦到某区域的动画制作

目录 1.添加Render Texture并和SceneCapture2D关联 1.1 场景准备 1.2 添加Render Texture 1.3 添加SceneCapture2D并关联 2.在Widget上显示Render Texture 2.1 创建Widget 2.2 配置Widget 2.3 添加控制按钮 2.4 添加窗口逻辑 3.制作Sequencer动画 3.1 创建Sequencer…

欧美北美南美国外媒体投稿和东南亚中东亚洲媒体海外新闻发稿软文推广营销策略有哪些?

在当今全球化的浪潮中&#xff0c;中国品牌正积极拓展海外市场&#xff0c;寻求更广阔的发展空间。面对国际竞争&#xff0c;有效的海外媒体发稿营销策略对于品牌国际化至关重要。以下是一些关键点和建议&#xff0c;以帮助品牌在海外市场取得成功。 深入了解目标市场&#xf…

2024年最新Stable Diffusion本地化部署详细攻略,手把手教程(建议收藏!!)_stable diffusion 本地部署

今天有网友问到SD本地部署的攻略&#xff0c;我找到以前收集的资料发出来分享给大家&#xff0c;希望对大家有帮助&#xff01; Stable Diffusion本地化部署详细攻略 一、硬件要求 内存&#xff1a;至少16GB 硬盘&#xff1a;至少60GB以上的磁盘空间&#xff0c;推荐SSD固态…

Unity 集成 FMOD 音频管理插件 2.02

Unity 集成 FMOD 音频管理插件 2.02 3. 集成教程&#xff1a;3.1 设置Unity项目3.2 设置FMOD项目3.3 设置 FMOD for Unity3.4 添加声音&#xff1a;卡丁车引擎3.5 添加声音&#xff1a;氛围3.6 添加声音&#xff1a;音乐3.7 删除现有音频3.8 下一步 10. 脚本 API 参考10.1 基础…

Shopee与Lazada卖家如何运用自养号测评稳定提升销量于评价

在跨境电商行业中&#xff0c;测评对于提高产品销量是个非常优秀的辅助方式。作为东南亚电商巨头&#xff0c;Shopee和Lazada这两大主流平台上&#xff0c;卖家竞争也尤为激烈&#xff0c;卖家们不断寻求有效的方法提升自己的产品销量。为了应对这一挑战&#xff0c;测评应运而…

揭秘重庆耶非凡科技:人力RPO项目真的能帮你赚钱吗?

在当今这个快速变化的市场环境中&#xff0c;企业为了降低运营成本、提升管理效率&#xff0c;越来越倾向于将非核心业务外包给专业的服务提供商。其中&#xff0c;人力资源外包(HRO)作为外包领域的重要组成部分&#xff0c;近年来得到了快速发展。重庆耶非凡科技有限公司的人力…

Laravel框架进阶:掌握队列系统,优化应用性能

Laravel使用队列处理 本文主要讲述如何利用 Laravel 框架的队列系统来管理异步任务和设置周期性执行的任务&#xff0c;从而增强应用程序的效能和可靠性。 Laravel队列的优势 异步执行&#xff1a;将任务添加到队列中后&#xff0c;可以立即返回响应给用户&#xff0c;而任务…

AI绘画如何打造高质量数据集?

遇到难题不要怕&#xff01;厚德提问大佬答&#xff01; 厚德提问大佬答11 你是否对AI绘画感兴趣却无从下手&#xff1f;是否有很多疑问却苦于没有大佬解答带你飞&#xff1f;从此刻开始这些问题都将迎刃而解&#xff01;你感兴趣的话题&#xff0c;厚德云替你问&#xff0c;你…

MySQL表的增删改查初阶(上篇)

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人…

SVNCloud 与 Navicat和IDEA的连接

文章目录 SVNCloud 配置Navicat访问云端数据库与IDEA Java jdbc 的连接 SVNCloud 配置 访问网址&#xff1a;SVN注册账号&#xff0c;进入mysql区域&#xff1a; 数据库管理->创建数据库&#xff0c;输入数据库名称和密码&#xff0c;注意&#xff0c;这里的数据库名称实际…

【机器学习】机器学习在深度学习领域中的作用:半监督学习的视角

&#x1f440;时空之门&#x1f440; &#x1f50d;引言&#x1f388;半监督学习概述&#x1f69d;机器学习在深度学习领域中的作用☘特征提取与表示学习&#x1f340;复杂任务建模❀结合半监督学习提升性能 &#x1f680;半监督学习在深度学习中的应用场景&#x1f4d5;图像识…

如何搭建一台永久运行的个人服务器?

一、前言 由于本人在这段时候&#xff0c;看到了一个叫做树莓派的东东&#xff0c;初步了解之后觉得很有意思&#xff0c;于是想把整个过程记录下来。 二、树莓派是什么&#xff1f; Raspberry Pi(中文名为树莓派,简写为RPi&#xff0c;(或者RasPi / RPI) 是为学习计算机编程…

HarmonyOS开发-鸿蒙UiAbility 组件间跳转

前言 随着春节假期结束各行各业复产复工&#xff0c;一年一度的春招也持续火热起来。最近&#xff0c;有招聘平台发布了《2024年春招市场行情周报&#xff08;第一期&#xff09;》。总体来说今年的就业市场还是人才饱和的状态&#xff0c;竞争会比较激烈。 但是&#xff0c;…

【网络基础1】

文章目录 学习目标一、网络基础11.网络的重要性2.osi7层模式3.协议和osi7层模型的关系4.数据的封装和解封装5.tcp的三次握手6.Ddos攻击讲解7.Tcp的四次挥手 二、网络基础21.文字编码2.IP地址的划分3.子网掩码4.同网段ip才能直接通信5.DNS解析6.DNS解析命令7.短域名为什么值钱8.…

HTTP --tcp和keep-alive

TCP TCP连接 tcp/ip是全球计算机以及网络设备都在使用的一种常见的分组交换网络分层协议集&#xff0c;客户端可以打开一条tcp/ip连接&#xff0c;连接到可能运行在世界各地的服务器应用程序&#xff0c;一旦连接建立起来了&#xff0c;在客户端和服务器的计算机之间交换的报…

Unity 资源 之 风格化地形纹理(Stylized Terrain Textures)免费领取

风格化地形纹理&#xff1a;Stylized Terrain Textures 前言资源包内容领取兑换码 前言 亲爱的 Unity 游戏开发者们&#xff0c;我们自豪地为大家推荐最新的每周免费资源&#xff1a;风格化地形纹理&#xff01;这些令人惊叹的纹理将为你的游戏世界带来独特而引人入胜的视觉体…

Ambari集成Apache Kyuubi实践

目前还有很多公司基于HDP来构建自己的大数据平台&#xff0c;随着Apache Kyuubi的持续热度&#xff0c;如何基于原有的HDP产品来集成Apache Kyuubi&#xff0c;很多人都迫切的需求。集成Apache Kyuubi到HDP中&#xff0c;主要涉及Ambari的二次开发。本文详细叙述了集成Apache K…

老师怎么发期末成绩?

期末成绩发放&#xff0c;可是每个学期的重头戏&#xff0c;老师们&#xff0c;你们怎样安全、高效的传达成绩&#xff1f;别急&#xff0c;今天就来聊聊这个问题。 先来个小调查&#xff1a;各位老师们都是怎么发成绩的&#xff1f;是传统的纸质成绩单&#xff0c;还是电子邮件…

IngsollRang伺服拧紧轴控制器维修故障排查

【IngsollRang控制器故障排查】 在开始维修之前&#xff0c;请确保拧紧机已关闭并断开电源。然后&#xff0c;按照以下步骤进行故障排查&#xff1a; 1. 检查电源连接&#xff1a;确保拧紧机的电源线牢固连接&#xff0c;且电源插座正常工作。 2. 检查保险丝&#xff1a;如果电…

SmartEDA赋能学校教育:电子设计学习新篇章,让梦想触手可及!

在数字化时代&#xff0c;电子设计已成为科技创新的重要驱动力。然而&#xff0c;对于许多初学者和在校学生来说&#xff0c;电子设计的学习过程往往充满了挑战和困惑。幸运的是&#xff0c;随着SmartEDA的出现&#xff0c;这一局面正在发生深刻改变。SmartEDA不仅简化了电子设…