一个请求入参 req 引发的魔法攻击

news2024/9/24 1:18:36

项目场景

月初检修上线后没几天,隔壁项目组的同事,反馈说出现了生产问题,调用我们这边的接口报错。

bug

问题描述

看到这个问题的第一眼,什么鬼,请求参数错误?

但是看到 “操作用户信息为空” 这个提示的时候,心里咯噔一下。
这个是我们这边封装的的一个基类,用户从前台请求的时候都会自动带上。
基类里面的用户信息字段,是加了 @NotNull 注解的。
只要外层加了 @Valid 注解就会进行必填的校验。


原因分析

罪魁祸首竟然是这个?!一个同事加了一个基类的继承。然后没有考虑到有其他项目 or 第三方的调用,而且还有必填校验。
req
据我了解,隔壁组的请求是没有封装这几基类的。
所以,引用到这个 req 的好几个接口都中枪了。


解决方案

  1. 评估影响范围,在其他项目组进行修改,或者我们项目组进行代码回滚和对应的修改。
  2. 新建一个 req,不要动原来的 req 了。

经验教训

  1. 评估改动的影响范围,有多少地方引用了这个 req。特别注意,继承的基类里面有 @NotNull 类似的校验注解。
  2. 有人说,不知道其他项目引用了。这种情况也挺常见,一开始接口我自己用,后面其他项目组也用到了。这个时候,规范的命名(external 加类似这种前后缀进行标识),或者必要的注释就很重要了,让其他修改这块代码的人,一眼就知道它的影响范围。
  3. 开闭原则:对拓展开放,对修改关闭。

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

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

相关文章

MySQL系列—10.Innodb行格式

我们平时的数据以行为单位来想表中插入数据,这些记录在磁盘上的存放方式也被称为行格式或者记录格式。InnoDB存储引擎设计了 4 种不同类型的行格式,分别是Compact、Redundant、Dynamic 和 Compressed行格式 查看MySQL8的默认行格式: SELECT…

STM32 HAL freertos零基础(四) 二值信号量

1、二值信号量 FreeRTOS中的二值信号量是一种用于任务间同步的机制,它只能有两个状态:0 或 1。二值信号量通常用来表示某个事件是否发生,比如硬件中断发生时设置信号量为1,表示事件已发生;而任务在需要等待该事件发生时…

Jupyter Notebook远程登录配置

目录 一、之前的版本修改方法 1、生成配置文件 2、设置密码、获取秘钥 3、修改默认配置文件 注:自动化脚本 二、新版本 注:自动化脚本 三、访问 四、ip查询 1、win 2、linux 一、之前的版本修改方法 1、生成配置文件 jupyter notebook --ge…

选对crm管理系统软件,客户留存率提升70%不是梦!

本文将盘点10款行业领先的crm管理系统软件,为企业选型提供参考! CRM系统,全称Customer Relationship Management System,即客户关系管理系统,是企业用来管理和分析客户互动与数据的软件系统。CRM系统的核心在于“以客户…

idea 拉取项目需要log in to git地址

idea 拉取项目需要log in to git地址 一. 问题复现二. 解决办法 一. 问题复现 1.使用 idea 拉取 git 代码 2.弹出“log in to XXXX 二. 解决办法

JavaWeb案例-登录认证

在前面的文章中,我们复习了部门管理、员工管理的基本功能。但是我们并没有登录,就直接访问到了Tilias智能辅助系统的后台。这是不安全的,所以今天复习登录认证。最终实现的效果就是用户必须登录之后,才可以访问后台系统中的功能。…

Java版本管理工具Jabba安装教程(Windows)

Java版本管理工具Jabba安装教程(Windows) 前言 Java版本的管理工具有很多,诸如Jenv,Jabba等,考虑到我之前使用Node.js的nvm还比较顺手,Jabba是受Node.js的nvm启发而来,故选择Jabba作为版本管理工具 这里…

iPhone照片删不掉?原因探索及解决方案

对于许多iPhone用户来说,删除不再需要的照片似乎是一个简单的任务。然而,有时你可能会发现某些照片无论如何都删不掉。这不仅令人困惑,还可能导致不必要的存储空间浪费。本文将探索导致iPhone照片删不掉的几种常见原因,并提供有效…

sdk和API接口的区别

目录 ✔️SDK(Software Development Kit)特点 ✔️API接口(Application Programming Interface)特点 ✔️区别总结✔️结合使用 ✔️SDK(Software Development Kit) SDK 是一组工具、库、文档和示例代码的集…

笔记本电脑桌面删除文件怎么恢复?恢复步骤全解析

在快节奏的现代生活中,笔记本电脑已成为我们不可或缺的伴侣。桌面作为电脑使用的起点,经常堆满了各种文件和快捷方式。 然而,由于操作失误或其他原因,我们有时会误删桌面上的重要文件,这无疑会给我们带来极大的困扰。…

SSM框架整合实战

本笔记基于【尚硅谷新版SSM框架全套视频教程,Spring6SpringBoot3最新SSM企业级开发】https://www.bilibili.com/video/BV1AP411s7D7?vd_sourcea91dafe0f846ad7bd19625e392cf76d8 总结 资料获取网址:https://www.wolai.com/v5Kuct5ZtPeVBk4NBUGBWF 框架…

CTF——简单的《WEB》

文章目录 一、WEB1、easysql2、baby_web3、baby_sql4、upload_easy5、easygame拓展1.1拓展1.2 6、ht_ssti7、包容乃大 一、WEB 1、easysql 题目描述: sql注入漏洞 1.常用的sql注入测试语句 2.sql注入bypass 解题思路 这边提示基本给的也很完整的,不…

野生动物检测-目标检测数据集(包括VOC格式、YOLO格式)

野生动物检测-目标检测数据集(包括VOC格式、YOLO格式) 数据集: 链接:https://pan.baidu.com/s/1RHpKHAyRyl0FDD4Up3MOmQ?pwdrbjq 提取码:rbjq数据集信息介绍: 共有 1504 张图像和一一对应的标注文件 标…

配置CMake

如题,需要下载CMake并配置。 CMake官网网址:CMake - Upgrade Your Software Build System 点击网页上“Download”,选择所需版本下载。 按下图配置环境变量 在cmd中输入“cmake”,如果配置正确,则会显示类似信息。

零工市场小程序:找临时工的新利器

找工作的方式正在不断进化,对于寻找临时工作者来说,一个新的工具已经出现在市场上,并迅速成为找工作的新宠——零工市场小程序。那么零工市场小程序如何成为寻找临时工作的新利器? 一、零工市场小程序概述 零工市场小程序是一种基于微信等平…

综合网络实验(H3C)可当毕业设计

介绍:本次实验通过多种路由交换协议组网来模拟中大型网络公司的网络组网转发,因本次实验中所涉及的设备数量较多,内存不足的朋友可以通过分批次启动部分设备来查看实验效果,如果想要启动全部设备的话,大概需要20G的运行…

ORA-12514

第一步,去这个地址,查查你的服务名是否存在 第二步,没查到就是你服务名写错了,查到了就退出我的解答

百易云资产管理运营系统 house.save.php SQL注入漏洞

1 产品简介 百易云资产管理运营系统,是专门针对企业不动产资产管理和运营需求而设计的一套综合解决方案。该系统能够覆盖资产的全生命周期管理,包括资产的登记、盘点、评估、处置等多个环节,同时提供强大的运营分析功能,帮助企业…

探讨IP查询技术在金融行业的深度应用

随着互联网技术的飞速发展,金融行业对信息技术的依赖程度日益加深。其中,IP查询技术作为网络安全与风控的重要工具,在金融行业中的应用日益广泛且深入。本文将从多个角度探讨IP查询技术在金融行业间的应用及其重要性。 一、网络安全与监管 在…

keithley 2430 数字源表

Keithley 2430脉冲源表,100V,10A,1kW Keithley 2430 SourceMeter 的功能和规格包括: 数字 I/O 接口: 紧密的系统集成,适用于装箱和分类等应用 内置组件处理程序接口 测试开始和测试结束信号 5V、300mA电…