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

随记-Java项目处理SQL注入问题

现象:http://10.xx.xx.xx:xx/services/xxService 存在SQL注入情况

加固意见:

需要对网站所有参数中提交的数据进行过滤,禁止输入“'"、"xor"、"or"、”--“、”#“、”select“、”and“等特殊字符;所有的查询语句都使用数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户输入变量嵌入到SQL语句中;严格限制网站用户对数据库的操作权限,给此用户提供仅仅能够满足其工作的权限,从而最大限度的减少注入攻击对数据库的危害;避免网站显示SQL错误信息,比如类型错误、字段不匹配等,防止攻击者利用这些错误信息进行一些判断。
#苏工:使用参数化查询。这些查询使数据库能够区分代码和数据,无论数据是什么,都不会被解释为 SQL 代码。
在 Java 中,可以使用 PreparedStatement;在 PHP 中,可以使用 PDO 或 mysqli 的绑定参数。#Java修改方案参考    用PreparedStatement解决SQL注入问题
String query = "SELECT * FROM users WHERE username = ? AND password = ?";
PreparedStatement stmt = connection.prepareStatement(query);
stmt.setString(1, username);
stmt.setString(2, password);
ResultSet rs = stmt.executeQuery();#PHP参考
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username AND password = :password");
$stmt->execute(array(":username" => $username, ":password" => $password));
$results = $stmt->fetchAll();

修复前:
在这里插入图片描述

修复后:
在这里插入图片描述

参考:

https://blog.csdn.net/m0_63149400/article/details/129244747  《用PreparedStatement解决SQL注入问题》
https://blog.csdn.net/u012887259/article/details/117491669    《使用 preparedStatement 解决 SQL 注入问题》
https://blog.csdn.net/qq_52722789/article/details/122447940  《SQL注入及PreparedStatement》
https://zhuanlan.zhihu.com/p/658285798   《SQL注入 -- SQL注入漏洞的修复建议》
http://www.lryc.cn/news/298241.html

相关文章:

  • 精读《js 模块化发展》
  • Proteus -模拟串口被关闭后怎样打开
  • 【深度学习】pytorch 与 PyG 安装(pip安装)
  • Bert与ChatGPT
  • 微信自动预约小程序开发指南:从小白到专家
  • 巴尔加瓦算法图解【完结】:算法运用(下)
  • hexo部署到gitee(码云)
  • linux系统非关系型数据库memcached
  • 前端vite+vue3——自动化配置路由布局
  • 速盾:怎么拿高防服务器做CDN
  • SQLite database实现加密
  • Python requests模块 快速入门 这篇就够了
  • 【VTKExamples::PolyData】第二十三期 InterpolateMeshOnGrid
  • 大数据术语系列(1)——COW和MOR,我如何使用chatgpt通俗易懂地理解了hudi这两种表类型
  • 蓝桥杯基础知识7 vector
  • 【Java万花筒】加速Java应用程序:探索性能优化的利器
  • c++ STL系列——(四)queue
  • 2.10日学习打卡----初学RocketMQ(一)
  • Window中出现 结束服务又自动重启的解决方法
  • Bee V2.2 分库分表 Sharding+MongoDB ORM 稳定版发布 (更新 Maven)
  • 机器学习系列——(十五)随机森林回归
  • 【概念板块统计】股票板块一览表 股票概念一览表
  • c#通过反射完成对象自动映射
  • ef core原始sql查询
  • 2024 CKS 题库 | 4、RBAC - RoleBinding
  • Docker Compose实例
  • Mac上新版InfluxDB使用教程
  • 性能篇:网络通信优化之序列化
  • 【UE 游戏编程基础知识】
  • 原语,原子,线程安全