五大注入攻击网络安全类型介绍
1. SQL注入(SQL Injection)

SQL注入流程
1.1. 概述
SQL注入是最常见的注入攻击类型之一,攻击者通过在输入字段中插入恶意的SQL代码来改变原本的SQL逻辑或执行额外的SQL语句,来操控数据库执行未授权的操作(如拖库、获取管理员信息、获取 WebShell权限等)。
1.2. 攻击方式
攻击者可以通过输入特定的SQL查询语句,获取敏感数据、修改数据或删除数据。例如,在登录表单中用户名称中输入 admin' OR '1'='1,可能导致绕过身份验证。
1.3. 防御措施
参数化查询:使用参数化查询(Prepared Statements)和存储过程,避免直接拼接SQL语句。
输入验证:对用户输入进行严格的验证和过滤。禁止在代码中或者存储过程中使用exec语句直接执行外部输入的参数或者使用外部输入拼接的SQL 语句。
最小化特权:限制数据库用户特权。
2. 脚本注入(Cross-Site Scripting, XSS)

XSS注入流程
2.1. 概述
XSS攻击允许攻击者在用户的浏览器中执行恶意脚本,通常用于窃取用户的会话信息、Cookies等。
应用程序包含反射式输入类型时容易出现跨站脚本攻击。比如弹出一个假的窗口骗取用户信息。
2.2. 攻击方式
攻击者将恶意JavaScript代码注入到网页中,当用户访问该网页时,代码会在用户的浏览器中执行。例如,攻击者在评论区输入 <script>alert('XSS');</script>。
2.3. 防御措施
对用户输入进行HTML转义,避免执行恶意代码;
用户可控数据输出至http响应中时要对输出进行编码;
使用内容安全策略(CSP)限制可执行的脚本源。
3. 命令注入(Command Injection)

命令注入流程
3.1. 概述
命令注入攻击允许攻击者在服务器上执行任意命令,通常通过在输入字段中插入系统命令来实现。
3.2. 攻击方式
攻击者可以通过输入特定的命令,如 ; ls -la,来执行系统命令。例如,在一个文件上传功能中,如果没有对输入进行有效过滤,攻击者可能上传恶意脚本。
3.3. 防御措施
使用安全函数:尽量不要从应用程序层代码中调用OS命令,如果实在要调用请使用封装后的安全函数;
输入过滤,避免执行未授权的命令:
对参数进行白名单校验,如验证输入只包含字母,没有其他语法关键字或空格等。
黑名单过滤,拦截命令注入特殊字符。
参数编码:对常见特殊字符进行转码,避免命令注入。
4. XML注入(XML Injection)

XML注入流程
4.1. 概述
XML注入攻击通过向XML数据中插入恶意内容,来操控XML解析器的行为。例如,攻击者可以插入额外的XML节点,导致数据泄露或系统崩溃。
4.2. 攻击方式
攻击者可以通过构造恶意的XML数据,影响后端系统的处理逻辑,主要有以下两种攻击方式:
普通注入:XML 注入攻击和SQL 注入攻击的原理一样,利用了XML 解析机制的漏洞,如果系统对用户输入"<",">"没有做转义的处理,攻击者可以修改XML 的数据格式,或者添加新的XML 节点,就会导致解析XML 异常,对流程产生影响。
外部实体注入:外 部 实 体 (XML External Entity,XXE) 注入攻击,由于程序在解析输入的XML 数据时,解析了攻击者伪造的外部实体而引发的攻击者利用站外脚部本实体的引用功能可实现对任意支件的读取。
4.3. 防御措施
对XML输入进行严格的验证和过滤;
使用安全的XML解析库,避免处理恶意构造的XML。
5. LDAP注入(LDAP Injection)
目录服务是一个集中式数据库,包含主体和客体的有关信息,如身份认证数据。许多目录服务都基于轻量级目录访问协议(Lightweight Directory Access Protocol,LDAP) 。比如,微软活动目录域服务(Microsoft Active Directory Domain Services,ADDS)就是基于LDAP的。
可以将 LDAP 目录看作是针对网络服务和资产的电话簿。用户、客户端和进程可以检索目录服务,从而定位所需系统或资源的位置。
5.1. 概述
LDAP注入攻击通过向LDAP查询中插入恶意代码,来操控LDAP服务器的行为。
LDAP注入原理类似SQL注入。
5.2. 攻击方式
攻击者可以通过输入特定的LDAP查询语句,获取未授权的用户信息。
例如,输入 *)(uid=*))可能导致查询所有用户。
5.3. 防御措施
使用参数化查询来构造LDAP查询;
对用户输入进行严格的验证和过滤。
6. 总结
注入攻击是一种严重的安全威胁,了解各种注入类型及其防御措施对于保护应用程序的安全至关重要。开发者应始终遵循安全编码实践,确保应用程序能够抵御这些攻击。
————————————————
原文链接:https://blog.csdn.net/leah126/article/details/140837753
相关文章:
五大注入攻击网络安全类型介绍
1. SQL注入(SQL Injection) SQL注入流程 1.1. 概述 SQL注入是最常见的注入攻击类型之一,攻击者通过在输入字段中插入恶意的SQL代码来改变原本的SQL逻辑或执行额外的SQL语句,来操控数据库执行未授权的操作(如拖库、获取…...
linux-L9.linux中对文件 按照时间排序 显示100 个
find . -type f -exec stat --format %Y %n {} | sort -nr | head -n 100解释: • find . -type f:在当前目录下查找所有文件。 • -exec stat --format ‘%Y %n’ {} :对每个找到的文件执行stat命令,以获取文件的修改时间&#…...
springboot从分层到解耦
注释很详细,直接上代码 三层架构 项目结构 源码: HelloController package com.amoorzheyu.controller;import com.amoorzheyu.pojo.User; import com.amoorzheyu.service.HelloService; import com.amoorzheyu.service.impl.HelloServiceA; import o…...
网络视频流解码显示后花屏问题的分析
问题描述 rtp打包的ps视频流发送到客户端后显示花屏。 数据分析过程 1、用tcpdump抓包 tcpdump -i eth0 -vnn -w rtp.pcap 2、用wireshark提取rtp的payload 保存为record.h264文件 3、用vlc播放器播放 显示花屏 4、提取关键帧 用xxd命令将h264文件转为txt文件 xxd -p…...
MySQL 大量 IN 的查询优化
背景 (1)MySQL 8.0 版本 (2)业务中遇到大量 IN 的查询,例: SELECT id, username, icon FROM users WHERE id IN (123, 523, 1343, ...);其中 id 为主键,IN 的列表长度有 8000 多个 问题 …...
python运维
环境准备 安装python3环境 # centos 安装python3 yum install python3创建激活venv python3 -m venv .venv source .venv/bin/activatezookeeper pip install kazoo 递归复制目录 from kazoo.client import KazooClientdef copy_node(zk, source_path, destination_path)…...
gen_server补充基础学习
学习gen_server的回调结构 gen_server:start_link(Name, Mod, InitArgs, Opts)这个调用是所有事物的起点。它 会创建一个名为Name的通用服务器,回调模块是Mod,Opts则控制通用服务器的行为。在这里可以指定消息记录、函数调试和其他行为。通用服务器通过…...
Python 入门教程(3)基础知识 | 3.1、基础语法
文章目录 一、 基础语法1、缩进规则2、标识符3、多行语句 一、 基础语法 1、缩进规则 学习 Python 与其他语言最大的区别就是,Python 的代码块不使用大括号 {} 来控制类,函数以及其他逻辑判断。python 最具特色的就是用缩进来写模块。缩进的空白数量是可…...
git 合并分支并解决冲突
git 合并分支并解决冲突 切换分支 git checkout <branch-name> 首先切换到要合并的目标分支 合并分支 git merge <source-branch> //将源分支代码合并到当前分支中,源分支的各项新增的提交都会按时间点插入到当前分支的提交记录中 git merge …...
《程序猿之设计模式实战 · 装饰者模式》
📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…...
[K8S]Forbidden: pod updates may not change fields other than
背景 在执行kubectl apply -f pod-nginx.yaml的时候报错 The Pod "nginx-test" is invalid: spec: Forbidden: pod updates may not change fields other than `spec.containers[*].image`, `spec.initContainers[*].image`, `spec.activeDeadlineSeconds`, `spec.to…...
C/C++漏洞检测数据集汇总
漏洞检测这个方向最近几年尤为热门,尤其是与深度学习技术相结合的研究,同时一些公开可用的数据集的出现也进一步推动了这些技术的发展。本篇文章总结归纳了目前在 C/C 源代码漏洞检测方向的一些公开数据集以及相关文献。 1 Devign (FFmpegQemu) 简介&am…...
springboot后端开发-常见注解及其用途
文章目录 1. 组件注解2. 依赖注入注解3. 配置类注解4. 测试注解5. 控制器注解6. 安全和认证注解7. 切面相关注解8. API文档相关注解(需引入swagger)9. 其他注解 在Spring Boot框架中,有许多常用的注解用来简化开发过程中的依赖注入、组件扫描、配置、安全控制等方面…...
TypeScript 扩展
扩展 ?:可选参数 可选链事实上并不是TypeScript独有的特性,它是ES11(ES2020)中增加的特性 可选链使用可选链操作符 ? 作用是当对象的属性不存在时,会短路,直接返回undefined,如果存在,那么…...
按键学院往期视频
按键学院第五期 网游实战系列课程 按键学院第四期 网游实战系列课程01-回合制网游的特点:测试游戏后台按键图色 网游实战系列课程02-神武新手任务的识别与处理:字库识别任务 网游实战系列课程03-神武自动组队与攻击 网游实战系列课程04-神武自动逛地图与攻击 网游实战系列课程0…...
通信工程学习:什么是MRF多媒体资源功能、MRFC多媒体资源功能控制、MRFP多媒体资源功能处理
一、MRF多媒体资源功能 MRF(Multimedia Resource Function,多媒体资源功能)是3G/IMS网络中定义的提供多媒体资源功能的网络实体,它为3G/IMS网络的业务和承载提供媒体能力支持。MRF通过提供丰富的媒体处理功能,如播放声…...
【Windows】获取进程缓解策略设置情况
目录 一、前言 二、主要概念 三、实现步骤 四、总结 原文出处链接:[https://blog.csdn.net/qq_59075481/article/details/142234952] 一、前言 在现代操作系统中,进程缓解策略(Process Mitigation Policy)提供了一种防御机制…...
语音识别相关概念
声音如何保存成数字信号? 声音是听觉对声波产生的感知,而声波是一种在时间和振幅上连续的模拟量,本质是介质的振动,,比如空气的振动。那么只需要把这个振动信号记录下来,并用一串数字来表达振动信号振动的…...
Iceberg与SparkSQL查询操作整合
前言 spark操作iceberg之前先要配置spark catalogs,详情参考Iceberg与Spark整合环境配置。 Iceberg使用Apache Spark的DataSourceV2 API来实现数据源和catalog。 使用SQL查询 查询的时候表要按照:catalog.数据库.表名的格式 SELECT * FROM prod.db.table; -- catalog: p…...
Linux 上安装 PostgreSQL
Linux 上安装 PostgreSQL PostgreSQL 是一款功能强大的开源关系数据库管理系统,因其稳定性、可扩展性和先进的功能而广受欢迎。在 Linux 系统上安装 PostgreSQL 是一个相对直接的过程,但具体步骤可能会因您使用的 Linux 发行版而异。本文将介绍在几种流行的 Linux 发行版上安…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)
引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...
mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...
土建施工员考试:建筑施工技术重点知识有哪些?
《管理实务》是土建施工员考试中侧重实操应用与管理能力的科目,核心考查施工组织、质量安全、进度成本等现场管理要点。以下是结合考试大纲与高频考点整理的重点内容,附学习方向和应试技巧: 一、施工组织与进度管理 核心目标: 规…...
