当前位置: 首页 > 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注入漏洞的修复建议》

相关文章:

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

现象:http://10.xx.xx.xx:xx/services/xxService 存在SQL注入情况 加固意见: 需要对网站所有参数中提交的数据进行过滤,禁止输入“"、"xor"、"or"、”--“、”#“、”select“、”and“等特殊字符;所有…...

精读《js 模块化发展》

1 引言 如今,Javascript 模块化规范非常方便、自然,但这个新规范仅执行了 2 年,就在 4 年前,js 的模块化还停留在运行时支持,10 年前,通过后端模版定义、注释定义模块依赖。对经历过来的人来说,…...

Proteus -模拟串口被关闭后怎样打开

Proteus -模拟串口被关闭后怎样打开 点击恢复弹出窗口,即可重新打开...

【深度学习】pytorch 与 PyG 安装(pip安装)

【深度学习】pytorch 与 PyG 安装(pip安装) 一、PyTorch安装和配置(一)、安装 CUDA(二)、安装torch、torchvision、torchaudio三个组件(1)下载镜像文件(2)创建…...

Bert与ChatGPT

1. Bert模型 BERT(Bidirectional Encoder Representations from Transformers)是一种预训练语言表示的方法,由Google AI在2018年提出。它标志着自然语言处理(NLP)领域的一个重大进步,因为它能够理解单词在…...

微信自动预约小程序开发指南:从小白到专家

随着互联网的发展,小程序已经成为了一个备受欢迎的在线预约平台。本文将详细介绍如何使用第三方制作平台,如乔拓云网,来搭建一个从入门到精通的预约小程序。 首先,我们需要登录乔拓云网,并选择一个适合自己的小程序模板…...

巴尔加瓦算法图解【完结】:算法运用(下)

目录 布隆过滤器HyperLogLogSHA算法比较文件检查密码 Diffie-Hellman密钥交换线性规划结语(完结) 布隆过滤器 在元素很多的情况下,判断一个元素是否在集合中可以使用布隆过滤器。布隆过滤器(Bloom Filter)是 1970 年由…...

hexo部署到gitee(码云)

引言 Hexo 是一个基于Node.js的静态博客框架,而 Gitee(也被称为码云)是一个国内的代码托管平台,支持 Git 版本控制系统,与 GitHub 类似。将 Hexo 部署到 Gitee Pages 可以让你的博客受益于 Gitee 的国内服务器&#xf…...

linux系统非关系型数据库memcached

memcached 特点原理配置安装Memcached 特点 内置内存存储方式-----------为了提高性能,memcached中保存的数据都存储在memcache内置的内存存储空间中。由于数据仅存在于内存中,重启操作系统会导致全部数据消失简单key/value存储---------------服务器不…...

前端vite+vue3——自动化配置路由布局

文章目录 ⭐前言💖vue3系列文章 ⭐ 自动化配置路由💖引入vite版本自定义目录映射💖自动化读取文件下的路由💖main入口加载路由💖入口app.vue配置💖layout基础布局配置💖效果 ⭐总结⭐结束 ⭐前言…...

速盾:怎么拿高防服务器做CDN

想要拿高防服务器做CDN,首先需要了解什么是CDN。CDN,即内容分发网络(Content Delivery Network),是一种通过互联网连接多个服务器,将静态和动态内容分发到最接近用户的服务器节点,从而提高用户访…...

SQLite database实现加密

注意:以下操作以VS2022为开发工具,以C#为开发语言。 数据加密原因 软件在使用的各个场景,很多都需要数据具有保密性,于是对于数据库就需要加密。特别是在某些特定领域或存储敏感数据尤其如此。 SQLite加密实现 SQLite加密有两种…...

Python requests模块 快速入门 这篇就够了

目录 一、Requests概述 二、安装Requests 三、Get请求 3.1 Get请求示例 3.2 Get请求爬取二进制数据 四、Post请求 4.1 Post请求示例 4.2 发送JSON数据 五、验证Cookies 六、会话请求 一、Requests概述 Requests是一个流行的Python第三方库,它专为HTTP通信…...

【VTKExamples::PolyData】第二十三期 InterpolateMeshOnGrid

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 前言 本文分享VTK样例InterpolateMeshOnGrid,并解析接口vtkProbeFilter 、vtkWarpScalar & vtkDealuany2D等多个接口,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步!…...

大数据术语系列(1)——COW和MOR,我如何使用chatgpt通俗易懂地理解了hudi这两种表类型

从传统数据库到大数据的转变,首当其冲的是各种术语的理解。 所以我与chatgpt发生了一系列对话,以便于我能快速理解这些术语。 我先把汇总的结果放在前边,后边会一步步地来说明我是如何获取这些信息的。前边我也发过一些关于chatgpt提示词相…...

蓝桥杯基础知识7 vector

蓝桥杯基础知识7 vector vector 的定义和特性&#xff1a;在C中&#xff0c;vector是一个动态数组容器&#xff0c;可以存储一系列相同类型的元素。 vector 是一个模板类&#xff0c;使用之前包含头文件<vector>&#xff0c;声明一个vector对象vec&#xff0c;T是存储在v…...

【Java万花筒】加速Java应用程序:探索性能优化的利器

Java性能优化&#xff1a;提升应用程序效率与可靠性的关键 前言 在当今软件开发领域中&#xff0c;性能是一个至关重要的方面。对于Java应用程序而言&#xff0c;优化其性能可以带来更高的效率和更好的用户体验。本文将介绍一些常用的Java性能优化库和工具&#xff0c;帮助开…...

c++ STL系列——(四)queue

在C中&#xff0c;标准模板库&#xff08;STL&#xff09;提供了许多容器和算法&#xff0c;其中之一便是queue。queue是一个先进先出&#xff08;FIFO&#xff09;的数据结构&#xff0c;它允许在队列的末尾添加元素&#xff0c;并从队列的开头移除元素。本文将深入探讨C STL中…...

2.10日学习打卡----初学RocketMQ(一)

2.10日学习打卡 对于MQ(Message queue)消息队列的一些解释可以看我原来写的文章 初学RabbitMQ 各大MQ产品比较 一.RocketMQ概述 发展历程 RocketMQ概念术语 生产者和消费者 生产者负责生产消息&#xff0c;一般由业务系统负责生产消息&#xff0c;消费者即后台系统&…...

Window中出现 结束服务又自动重启的解决方法

目录 前言1. 问题所示2. 原理分析3. 解决方法前言 长期使用Linux操作系统,对于Window进程如何关闭开启,推荐阅读:Window命令行 如何查看以及关闭进程 而现在遇到进程无法强制kill,过一会自动启动! 对这种方式如何强制关闭,可看下文 1. 问题所示 起初在驱动某个服务的…...

Java网络编程实战:从零实现一个支持视频通话的聊天室

最近在学习Java网络编程&#xff0c;恰好之前写过一个基于TCP的多人聊天室&#xff0c;一直想给它加上视频通话功能。经过几天的折腾&#xff0c;终于把UDP视频流和TCP信令成功整合到了一起。这篇文章会完整记录开发过程、踩过的坑以及最终的代码实现 一、项目背景与目标 原有…...

如何快速掌握PDF对比工具:5个实用场景完全指南

如何快速掌握PDF对比工具&#xff1a;5个实用场景完全指南 【免费下载链接】diff-pdf A simple tool for visually comparing two PDF files 项目地址: https://gitcode.com/gh_mirrors/di/diff-pdf PDF对比工具diff-pdf是一款开源的视觉化PDF文件对比神器&#xff0c;它…...

Hive与MySQL集成配置全流程解析

1. Hive与MySQL集成的核心价值 在企业级大数据环境中&#xff0c;Hive作为数据仓库工具经常需要处理PB级数据。但默认的Derby元数据库存在单会话限制和性能瓶颈&#xff0c;这正是MySQL大显身手的地方。我经历过多次生产环境迁移&#xff0c;将元数据从Derby切换到MySQL后&…...

解锁B站资源:BilibiliDown高效视频下载全方案

解锁B站资源&#xff1a;BilibiliDown高效视频下载全方案 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors/bi/Bilibi…...

从磁力线到最小磁阻:手把手拆解一个微型直流电机的内部‘磁路战争’

从磁力线到最小磁阻&#xff1a;手把手拆解一个微型直流电机的内部‘磁路战争’ 拆开一枚硬币大小的玩具电机&#xff0c;你会看到一场无声的物理博弈——磁力线像急于回家的士兵&#xff0c;不断寻找最短路径&#xff1b;而转子则是这场战役的指挥官&#xff0c;通过精确的旋…...

深入解析振动传感器:从原理到应用的全面指南

1. 振动传感器入门&#xff1a;从"感觉"到"测量"的跨越 你有没有想过&#xff0c;为什么手机横屏时画面会自动旋转&#xff1f;为什么智能手环能记录你的步数&#xff1f;这些看似简单的功能背后&#xff0c;都离不开一个关键元件——振动传感器。作为工业…...

人脸识别系统如何利用图像质量评估提升准确率?5个实战场景解析

人脸识别系统如何利用图像质量评估提升准确率&#xff1f;5个实战场景解析 在光线昏暗的便利店监控画面中&#xff0c;一位戴着口罩的顾客突然抬头看向摄像头——这个瞬间能否被准确识别&#xff0c;往往取决于系统对人脸图像质量的实时判断能力。图像质量评估&#xff08;FQA&…...

Ubuntu20.04下HPC_SDK加速库安装避坑指南(附OpenACC测试代码)

Ubuntu 20.04下HPC_SDK加速库深度实战指南&#xff1a;从安装到OpenACC性能调优 在当今高性能计算领域&#xff0c;GPU加速已成为提升计算效率的关键技术。NVIDIA HPC SDK作为一套全面的开发工具包&#xff0c;为开发者提供了从编译器到性能分析的全套解决方案。本文将带您深入…...

Node.js后端集成GTE-Base-ZH:构建语义化API服务实战

Node.js后端集成GTE-Base-ZH&#xff1a;构建语义化API服务实战 最近在做一个智能文档检索项目&#xff0c;需要处理大量中文文本的语义相似度计算。一开始尝试用传统的TF-IDF&#xff0c;效果总是不尽如人意&#xff0c;直到接触到了GTE-Base-ZH这个专门针对中文优化的文本嵌…...

Granite TimeSeries FlowState R1 多步预测效果展示:长期趋势与不确定性量化

Granite TimeSeries FlowState R1 多步预测效果展示&#xff1a;长期趋势与不确定性量化 时间序列预测&#xff0c;听起来挺专业的&#xff0c;但说白了&#xff0c;就是根据过去的数据&#xff0c;猜猜未来会发生什么。比如&#xff0c;老板问你&#xff1a;“下个月咱们产品…...