当前位置: 首页 > news >正文

springboot全局拦截sql异常

起因:非法用户可通过特定的输入(如输入内容超长)等操作,使后台逻辑发生错误,从而使后台sql语句暴露至前台,进而为sql攻击提供条件

处理流程:经查找com.mysql.cj.jdbc.exceptions的父类为SQLException,在全局异常处理类中增加如下配置,经测试不起作用

@ExceptionHandler(SQLException.class)
public AjaxResult handleSQLException(AccessDeniedException e, HttpServletRequest request)
{String requestURI = request.getRequestURI();return AjaxResult.error("语句执行异常,请联系管理员");
}

因为ExceptionHandler 只认我们注入的类名称,所以我们的曲线一下,在RuntimeException中进行判断

    /*** 拦截未知的运行时异常*/@ExceptionHandler(RuntimeException.class)public AjaxResult handleRuntimeException(RuntimeException e, HttpServletRequest request){if(e.getCause().toString().startsWith("com.mysql.cj.jdbc.exceptions")){return AjaxResult.error(HttpStatus.ERROR, "操作失败!请联系管理员");}else{return AjaxResult.error(e.getMessage());}}

结果:

http://www.lryc.cn/news/226982.html

相关文章:

  • AlGaN/GaN HFET 五参数模型
  • 矩阵的除法
  • Java中的 向上转型 | 向下转型
  • 【华为OD机试AB高分必刷题目】朋友圈(C++-并查集Union-Find实现)
  • 前端面试题之vue篇
  • Java进阶(垃圾回收GC)——理论篇:JVM内存模型 垃圾回收定位清除算法 JVM中的垃圾回收器
  • GaN HEMT 电容的分析建模,包括寄生元件
  • Python实战 | 使用 Python 和 TensorFlow 构建卷积神经网络(CNN)进行人脸识别
  • JLink edu mini 10Pin接口定义
  • compile: version “go1.19“ does not match go tool version “go1.18.1“
  • spring boot security 自定义AuthenticationProvider
  • 某电力设计公司绩效考核优化项目成功案例纪实
  • 力扣371周赛
  • Python之字符串、正则表达式练习
  • Transmit :macOS 好用的 Ftp/SFtp 工具
  • 【Github】git clone命令下载文件中途停止
  • Clickhouse学习笔记(10)—— 查询优化
  • [量化投资-学习笔记012]Python+TDengine从零开始搭建量化分析平台-策略回测
  • MySQL 查看 event 执行记录
  • 开发知识点-Vue-Electron
  • 【线性代数】反求矩阵A
  • MyBatis 中的 foreach 的用法
  • 交叉编译 mysql-connector-c
  • 企业如何选择正确的存储服务器租用?
  • 45.跳跃游戏II
  • css style、css color 转 UIColor
  • C++(20):typename声明类的子类型的简化
  • 一个java文件的JVM之旅
  • C# wpf 实现任意控件(包括窗口)更多拖动功能
  • 一种ADC采样算法,中位值平均滤波+递推平均滤波