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

#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍01

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章阅读。

目录

SQL注入概述

SQL注入的原理

SQL注入产生的原因

SQL注入攻击的常见手法

1. 基于错误消息的SQL注入(Error-Based SQL Injection)

2. 联合查询注入(Union-Based SQL Injection)

3. 盲SQL注入(Blind SQL Injection)

4. 基于堆叠查询的SQL注入(Stacked Queries SQL Injection)

5. 基于子查询的SQL注入(Subquery-Based SQL Injection)

6. 基于注释的SQL注入(Comment-Based SQL Injection)

7. 基于时间延迟的SQL注入(Time-Based SQL Injection)

8. 基于布尔值的SQL注入(Boolean-Based SQL Injection)

9. 基于文件操作的SQL注入(File-Based SQL Injection)

10. 基于XML的SQL注入(XML-Based SQL Injection)

SQL注入攻击案例分析

案例1:简单的登录绕过

场景描述

攻击过程

防范措施

案例2:联合查询注入

场景描述

攻击过程

防范措施

案例3:盲SQL注入

场景描述

攻击过程

防范措施

案例4:基于时间延迟的SQL注入

场景描述

攻击过程

防范措施

SQL注入的危害

SQL注入的防范措施

SQL注入攻击的法律后果

刑事责任

民事责任

行政处罚

国际法律

典型案例

案例1:美国Target公司数据泄露案

案例2:英国TalkTalk电信公司数据泄露案

总结


SQL注入概述

SQL注入是一种常见的网络安全威胁,主要针对使用SQL(结构化查询语言)的Web应用程序。攻击者通过将恶意的SQL命令嵌入到用户提交的表单数据或URL参数中,使得服务器在处理这些数据时误执行这些命令,从而达到非法操作数据库的目的。

SQL注入的原理

SQL注入的基本原理是利用Web应用程序对用户输入数据的合法性没有校验或过滤不严的漏洞,攻击者可以在Web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句。由于系统未对输入数据进行校验,直接信任了用户输入,使得恶意输入改变了原本的SQL逻辑或者执行了额外的SQL脚本,从而实现了SQL注入攻击。

例如,一个简单的登录界面,如果仅检查用户名和密码是否匹配,而未对输入进行任何过滤,攻击者可以通过输入特定的字符串来改变SQL语句的逻辑,从而绕过登录验证。

SQL注入产生的原因

  • 未对用户输入进行严格验证:如果程序没有细致地过滤用户输入的数据,致使非法数据侵入系统,就可能产生SQL注入漏洞。例如,当输入的参数为整型时,可能存在数字型注入漏洞;当输入参数为字符串时,可能存在字符型注入漏洞,数字型与字符型注入最大的区别在于数字型不需要单引号闭合,而字符型一般需要使用单引号来闭合

SQL注入攻击的常见手法

1. 基于错误消息的SQL注入(Error-Based SQL Injection)

攻击者通过在输入字段中插入恶意的SQL代码,使数据库生成错误消息。这些错误消息通常会包含数据库的结构信息,如表名、列名等,从而帮助攻击者进一步构建更复杂的攻击。

2. 联合查询注入(Union-Based SQL Injection)

攻击者通过在SQL查询中使用UNION关键字,将恶意的SQL查询附加到原始查询中。这样,攻击者可以将自己构造的查询结果与原始查询结果合并在一起,从而获取数据库中的敏感信息。

3. 盲SQL注入(Blind SQL Injection)

盲SQL注入是指攻击者无法直接看到错误消息或查询结果的情况下进行的SQL注入攻击。攻击者通过观察页面的变化或响应时间来判断SQL查询是否成功执行。盲SQL注入通常分为布尔型盲注和时间型盲注。

  • 布尔型盲注:攻击者通过发送不同的SQL查询,观察页面返回的结果是否发生变化来判断注入是否成功。
  • 时间型盲注:攻击者通过在SQL查询中引入延时操作(如SLEEP),观察页面响应时间的变化来判断注入是否成功。

4. 基于堆叠查询的SQL注入(Stacked Queries SQL Injection)

攻击者通过在SQL查询中使用分号(;)来分隔多个SQL语句,从而一次性执行多个恶意的SQL操作。这种方法在某些数据库(如Microsoft SQL Server)中特别有效。

5. 基于子查询的SQL注入(Subquery-Based SQL Injection)

攻击者通过在SQL查询中嵌套子查询,利用子查询的特性来构造复杂的注入攻击。这种方法通常用于绕过某些防护措施,如输入验证和过滤。

6. 基于注释的SQL注入(Comment-Based SQL Injection)

攻击者通过在SQL查询中使用注释符号(如--/* ... */)来截断原始查询,从而插入恶意的SQL代码。这种方法通常用于绕过某些输入验证和过滤规则。

7. 基于时间延迟的SQL注入(Time-Based SQL Injection)

攻击者通过在SQL查询中引入时间延迟操作(如SLEEPWAITFOR DELAY),观察页面响应时间的变化来判断注入是否成功。这种方法通常用于盲SQL注入攻击。

8. 基于布尔值的SQL注入(Boolean-Based SQL Injection)

攻击者通过在SQL查询中插入布尔值条件(如AND 1=1AND 1=2),观察页面返回的结果是否发生变化来判断注入是否成功。这种方法通常用于盲SQL注入攻击。

9. 基于文件操作的SQL注入(File-Based SQL Injection)

攻击者通过在SQL查询中使用文件操作函数(如LOAD_FILEINTO OUTFILE),读取或写入数据库服务器上的文件。这种方法通常用于获取数据库配置文件或上传恶意脚本。

10. 基于XML的SQL注入(XML-Based SQL Injection)

攻击者通过在SQL查询中使用XML相关函数(如ExtractValueUpdateXML),构造复杂的注入攻击。这种方法通常用于绕过某些防护措施,如输入验证和过滤。

SQL注入攻击案例分析

SQL注入攻击是一种常见的网络安全威胁,攻击者通过在Web应用的输入字段中插入恶意的SQL代码,以达到非法访问、篡改或删除数据库中的数据的目的。以下是一些典型的SQL注入攻击案例分析:

案例1:简单的登录绕过

场景描述

在一个Web应用的登录页面上,用户需要输入用户名和密码。应用程序使用以下SQL查询来验证用户身份:

SELECT * FROM users WHERE username='[username]' AND password='[password]';

攻击过程

攻击者在用户名字段中输入' OR '1'='1' --,在密码字段中输入任意值。最终的SQL查询变为:

SELECT * FROM users WHERE username='' OR '1'='1' --' AND password='[password]';

由于'1'='1'始终为真,查询将返回所有用户的第一条记录,从而使攻击者成功登录。

防范措施

  • 使用参数化查询或预编译语句,避免直接拼接用户输入。
  • 对用户输入进行严格的验证和过滤。

案例2:联合查询注入

场景描述

在一个Web应用的搜索功能中,用户可以通过关键词搜索文章。应用程序使用以下SQL查询来检索文章:

SELECT title, content FROM articles WHERE title LIKE '%[keyword]%';

攻击过程

攻击者在关键词字段中输入' UNION SELECT username, password FROM users --。最终的SQL查询变为:

SELECT title, content FROM articles WHERE title LIKE '%' UNION SELECT username, password FROM users --';

由于UNION操作将两个查询结果合并在一起,攻击者成功获取了用户表中的所有用户名和密码。

防范措施

  • 使用参数化查询或预编译语句,避免直接拼接用户输入。
  • 对用户输入进行严格的验证和过滤。
  • 禁用不必要的数据库功能,如UNION操作。

案例3:盲SQL注入

场景描述

在一个Web应用的商品详情页面上,用户可以通过商品ID查看商品信息。应用程序使用以下SQL查询来检索商品信息:

SELECT name, price FROM products WHERE id=[product_id];

攻击过程

攻击者在商品ID字段中输入1' AND 1=1 --,页面正常显示商品信息。接着,攻击者输入1' AND 1=2 --,页面显示错误信息。通过这种方式,攻击者可以逐步猜测出数据库的结构和内容。

防范措施

  • 使用参数化查询或预编译语句,避免直接拼接用户输入。
  • 对用户输入进行严格的验证和过滤。
  • 关闭详细的错误信息显示,避免泄露敏感信息。

案例4:基于时间延迟的SQL注入

场景描述

在一个Web应用的用户注册页面上,用户需要输入用户名、密码和邮箱。应用程序使用以下SQL查询来检查用户名是否已存在:

SELECT * FROM users WHERE username='[username]';

攻击过程

攻击者在用户名字段中输入' AND IF(1=1, SLEEP(5), 0) --。如果用户名已存在,查询将等待5秒钟后再返回结果。通过这种方式,攻击者可以判断用户名是否存在,并进一步猜测其他敏感信息。

防范措施

  • 使用参数化查询或预编译语句,避免直接拼接用户输入。
  • 对用户输入进行严格的验证和过滤。
  • 关闭详细的错误信息显示,避免泄露敏感信息。

SQL注入的危害

  1. 数据泄露:攻击者可以通过SQL注入获取数据库中的敏感信息,如用户的账号、密码、个人隐私信息等。
  2. 数据篡改:恶意修改数据库中的数据,例如修改商品价格、用户权限等信息。
  3. 数据库破坏:执行恶意的SQL命令,如删除表、修改表结构等操作,导致数据库无法正常运行。

SQL注入的防范措施

  1. 参数化查询(Prepared Statements):使用参数化查询可以有效防止SQL注入,因为它们在执行查询之前将输入数据与查询语句分离。
  2. 输入验证和转义
    • 对用户输入进行适当的验证,可以通过正则表达式、限制长度等方式。
    • 使用合适的转义函数(如mysqli_real_escape_string)来处理输入,以防止恶意注入。
  3. 最小权限原则:给予数据库用户最小的权限,确保它们只能执行必要的操作,以降低潜在的损害。
  4. 使用ORM框架:使用对象关系映射(ORM)框架(如Hibernate、Sequelize)可以帮助抽象SQL查询,从而降低SQL注入的风险。
  5. 禁用错误消息显示:在生产环境中,禁用显示详细的错误消息,以防止攻击者获取有关数据库结构的敏感信息。
  6. 定期进行安全审计和渗透测试:通过专业的安全审计和渗透测试,及时发现和修复潜在的安全漏洞。

SQL注入攻击的法律后果

SQL注入攻击是一种严重的网络安全威胁,不仅会对受害者的数据库造成损害,还可能涉及违法行为。以下是关于SQL注入攻击的一些法律后果:

刑事责任

在许多国家和地区,未经授权访问计算机系统或数据库的行为被视为犯罪。例如,在中国,《中华人民共和国刑法》第285条规定了非法侵入计算机信息系统罪,最高可判处三年以上有期徒刑。此外,第286条规定了破坏计算机信息系统罪,最高可判处五年以上有期徒刑。

民事责任

受害者可以向法院提起民事诉讼,要求攻击者赔偿因攻击行为造成的经济损失。这些损失可能包括数据恢复费用、业务中断损失、客户赔偿费用等。

行政处罚

在一些国家和地区,政府机构有权对实施SQL注入攻击的行为进行行政处罚。例如,中国的《网络安全法》规定,网络运营者应当采取技术措施和其他必要措施,确保其收集的个人信息安全,防止信息泄露、损毁、丢失。对于违反规定的网络运营者,可以处以罚款、吊销营业执照等行政处罚。

国际法律

由于互联网的全球性,SQL注入攻击可能涉及跨国犯罪。在这种情况下,国际法律和国际合作机制将发挥作用。例如,《布达佩斯网络犯罪公约》是世界上第一个旨在打击网络犯罪的国际条约,成员国之间可以相互协助调查和起诉网络犯罪行为。

典型案例

案例1:美国Target公司数据泄露案

2013年,美国零售巨头Target公司遭受了一次大规模的SQL注入攻击,导致约4000万张信用卡信息和7000万客户的个人信息被盗。攻击者通过入侵Target公司的第三方供应商系统,获得了访问Target公司数据库的权限。此次事件不仅给Target公司造成了巨大的经济损失,还引发了多起法律诉讼。最终,Target公司同意支付1820万美元的赔偿金,并加强了其网络安全措施。

案例2:英国TalkTalk电信公司数据泄露案

2015年,英国电信公司TalkTalk遭受了一次SQL注入攻击,导致约15万客户的个人信息被盗。攻击者通过入侵TalkTalk公司的网站,获得了访问其数据库的权限。此次事件不仅给TalkTalk公司造成了巨大的经济损失,还引发了多起法律诉讼。最终,TalkTalk公司被英国信息专员办公室(ICO)罚款40万英镑,并被迫加强其网络安全措施。

总结

SQL注入攻击不仅会对受害者的数据库造成损害,还可能涉及违法行为。攻击者可能面临刑事责任、民事责任和行政处罚。此外,由于互联网的全球性,SQL注入攻击可能涉及跨国犯罪,国际法律和国际合作机制将发挥作用。因此,企业和个人应当采取有效的安全措施,防止SQL注入攻击的发生。

相关文章:

#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍01

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…...

VSCode 报错:rust-analyzer requires glibc >= 2.28 in latest build

报错信息 /home/jake/.vscode-server-insiders/extensions/matklad.rust-analyzer-0.3.953/server/rust-analyzer: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.29 not found (required by /home/jake/.vscode-server-insiders/extensions/matklad.rust-analyzer-0.3.9…...

x2go远程控制

X2Go 优点:专为远程桌面和图形界面优化。性能优越,特别是在网络带宽较低的情况下,采用了高效的压缩和缓存技术。支持多用户、会话恢复功能,适合企业使用。使用 SSH 连接,具有较好的安全性。 安装与配置:需…...

SQL 单表查询练习题(一)

在 SQL 的学习过程中,单表查询是非常重要的基础部分,下面为大家分享一些单表查询的练习题以及对应的正确答案,希望能帮助大家更好地掌握相关知识。 一、题目及答案详情 1. 查询课程表中,没有前序课程的课程信息,查询…...

Ubuntu 安装texstudio sty与texlive

手动安装需要的包 访问CTAN网站(Comprehensive TeX Archive Network)并下载enumitem宏包: enumitem CTAN页面下载后,将宏包解压到/usr/share/texmf/tex/latex/下。 可打开texstudio/帮助/宏包帮助下载。 如果不想手动安装一个个…...

DevExpress WPF中文教程:Grid - 如何移动和调整列大小?(一)

DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…...

【现代服务端架构】传统服务器 对比 Serverless

在现代开发中,选择合适的架构是至关重要的。两种非常常见的架构模式分别是 传统服务器架构 和 Serverless。它们各有优缺点,适合不同的应用场景。今天,我就带大家一起对比这两种架构,看看它们的差异,并且帮助你选择最适…...

SecureCRT/FX使用[无限试用SecureCRT][新版本SecureFX双击站点总是自动跳到SecureCRT]

无限试用SecureCRT 本文摘录于:https://blog.csdn.net/qq_52162404/article/details/139703993#:~:textSecureCRT只是做学习备份之用,绝无抄袭之意,有疑惑请联系本人! 我这里修改BAT如下,同时删除CRT和FX的license: echo off re…...

c++ CMakeLists.txt详解

基本结构 CMake 最低版本声明 用于指定需要的最低 CMake 版本,确保兼容性。 cmake_minimum_required(VERSION 3.10)指定 CMake 的最低版本。确保用户的 CMake 版本符合项目需求,否则报错。版本选择建议根据项目使用的功能决定。例如,3.10 引…...

树状数组详解

概述 树状数组(Binary Indexed Tree,简称BIT),是一种数据结构,用于处理区间查询和更新问题。它是一种可以高效地在对数级别时间复杂度内进行单点更新和区间查询的数据结构。树状数组通常用于解决以下两类问题&#xf…...

photoshop的2个形状-箭头

有时候用ps画一些教程类图文,需要用到箭头. 另外自己画了一个镂空的长方形和正方形 形状的路径一般在Custom Shapes文件夹内 例如 E:\photoshopCS4\Adobe Photoshop CS4\Presets\Custom Shapes...

docker 部署 redis

docker 部署 redis 1. 下载 redis 镜像 # docker images | grep redis bitnami/redis 7.2.4-debian-11-r5 45de196aef7e 10 months ago 95.2MB2. docker-compose 部署 version: "3" services:redis:image: bitnami/redis:7.2.4-debian-11-…...

如何持续优化呼叫中心大模型呼入机器人的性能?

如何持续优化呼叫中心大模型呼入机器人的性能? 原作者:开源呼叫中心FreeIPCC,其Github:https://github.com/lihaiya/freeipcc 持续优化呼叫中心大模型呼入机器人的性能是一个复杂而细致的过程,它涉及到数据、模型结构…...

【01】mysql安装后MySQL Configurator无法启动的问题

安装完Mysql之后打开MySql Configurator提示MySQL Configurator Internal error.(值不能为null.参数名:input) The Configurator will now close. mysql安装后MySQL Configurator无法启动的问题 文章目录 mysql安装后MySQL Configurator无法启动的问题1.MySQL Configurator无法…...

基于单片机的血氧心率检测与报警系统(论文+源码)

1系统的功能及方案设计 本次课题为基于单片机的血氧心率检测与报警系统研制,在此设计了如图2.1所示的系统结构框图,整个系统包括了MAX30102心率血氧检测模块,DS18B20体温检测模块,液晶显示模块,按键以及主控制器stm32…...

科技潮头浪接天,一桥飞架两界连。EthernetIP转Profinet互译连

本案例介绍的是西门子1200PLC通过稳联技术PROFINET转EtherNetIP网关(WL-ABC2006)连接HCS-6100系统配置案例。 打开稳联技术Ethernetip转profient网关(WL-ABC2006)配置软件,因为网关作为EtherNetIP从站,所以选择PN2EIP。设置网关Pr…...

day11 性能测试(4)——Jmeter使用(黑马的完结,课程不全)直连数据库+逻辑控制器+定时器

【没有所谓的运气🍬,只有绝对的努力✊】 目录 1、复习 1.1 断言(3种) 1.2 关联(3种) 1.3 录制脚本 2、Jmeter直连数据库 2.1 直连数据库——使用场景 2.2 直连数据库——操作步骤 2.2.1 案例1&…...

如何使用 Python 读取文本文件?

在Python编程中,读取文本文件是一项基本且重要的操作。 无论是处理日志文件、配置文件,还是进行数据分析,都需要用到这一技能。 下面,我将详细介绍如何使用Python读取文本文件,并提供一些实际开发中的建议和注意事项…...

11. qml ShaderEffect实现阴影效果

目录 MDropShadow.qml使用 MDropShadow.qml 基于上一章所制作的MGaussianBlur.qml 开发 MDropShadow阴影效果 import QtQuick 2.12Item {id: controlproperty var source;property real radius: 4property bool cached: falseproperty int offsetX: 0property int offsetY: 0…...

故障013:易忘的NULL表达式

故障013:易忘的NULL表达式 一、问题引入二、探索之路2.1 数据准备2.2 回顾NULL表达式2.3 重现问题2.3.1 分析原因2.3.2 如何化解预期? 三、知识总结 一、问题引入 某单位开发人员理直气壮抛出一张截图,以红色醒目地标记问题,好似…...

基于nginx和ffmpeg搭建HTTP FLV流媒体服务器

一、简介 整体是使用nginx搭建HTTP FLV流媒体服务器: 流程:音视频->rtmp->http-flv 音视频转为rtmp需要借助ffmpeg转化。 rtmp转为http-flv需要借助nginx转化。 nginx-http-flv-module是基于nginx-rtmp-module开发的,包含nginx-rt…...

【人工智能】用Python构建高效的自动化数据标注工具:从理论到实现

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 数据标注是构建高质量机器学习模型的关键环节,但其耗时耗力常成为制约因素。本篇文章将介绍如何用Python构建一个自动化数据标注工具,结合机器学习和NLP技术,…...

MVC基础——市场管理系统(四)

文章目录 项目地址六、EF CORE6.1 配置ef core环境6.2 code first6.2.1 创建Database context1. 添加navigation property2. 添加MarketContext上下文七、Authentication7.1 添加Identity7.2 Run DB migration for Identity7.3 使用Identity7.3.1 设置认证中间件7.3.2 设置权限…...

多模块应用、发布使用第三方库(持续更新中)

目录: 1、多模块概述(HAP、HSP、HAR) HAR与HSP两种共享包的主要区别体现在: 2、三类模块: 3、创建项目:项目名:meituan (1)创建Ability类型的Module,编译后为HAP文件…...

MVP模式的理解和实践

MVP(Model-View-Presenter)模式是一种用于组织代码的架构模式,主要用于用户界面的开发。它通过将应用程序的三个主要组件分开,提高了应用的可维护性和可测试性。本文将详细介绍MVP模式的理解和实践,并通过Java语言提供…...

开启第二阶段---蓝桥杯

一、12.10--数据类型的范围及转化 今天是刚开始,一天一道题 对于这道题我想要记录的是Java中的整数默认是 int 类型,如果数值超出了 int 的范围,就会发生溢出错误。为了避免这个问题,可以将数字表示为 long 类型,方法…...

Linux 网络流量控制 - 实现概述

摘要 Linux 提供了一整套丰富的流量控制(traffic control)功能。本文档概述了相应的内核代码设计,描述了其结构,并通过描述一种新的排队策略来说明新元素的添加。 1 引言 最近的Linux内核提供了多种流量控制功能。Alexey Kuznetsov(kuznet…...

分布式 Raft算法 总结

前言 相关系列 《分布式 & 目录》《分布式 & Raft算法 & 总结》《分布式 & Raft算法 & 问题》 参考文献 《Raft一致性算法论文译文》《深入剖析共识性算法 Raft》 简介 Raft 木筏是一种基于日志复制实现的分布式容错&一致性算法。在Raft算法…...

【前端面试题】变量提升、闭包、promise

飞书面试 题目1: async function foo() {console.log(foo start);await bar();console.log(foo end); }async function bar() {console.log(bar start);return new Promise((resolve, reject) > {setTimeout(() > {console.log(bar promise);resolve();}, 1…...

UE5安装Fab插件

今天才知道原来Fab也有类似Quixel Bridge的插件,于是立马就安装上了,这里分享一下安装方法 在Epic客户端 - 库 - Fab Library 搜索 Fab 即可安装Fab插件 然后重启引擎,在插件面板勾选即可 然后在窗口这就有了 引擎左下角也会多出一个Fab图标…...

数据分析思维(一):业务指标(数据分析并非只是简单三板斧)

个人认为,数据分析并非只是简单的数据分析工具三板斧——Excel、SQL、Python,更重要的是数据分析思维。没有数据分析思维和业务知识,就算拿到一堆数据,也不知道如何下手。 推荐书本《数据分析思维——分析方法和业务知识》&#x…...

linux下socket本地套接字通讯

使用套接字除了可以实现网络间不同主机间的通信外,还可以实现同一主机的不同进程间的通信,且建立的通信是双向的通信。socket进程通信与网络通信使用的是统一套接口,只是地址结构与某些参数不同。 用途 进程间通信:本地套…...

vmcore和kdump

在Linux系统中,vmcore是指内核崩溃时生成的内存转储文件。这个文件包含了系统崩溃时的内存状态,可以用于分析和诊断内核崩溃的原因。分析vmcore文件通常需要使用专门的工具和方法。以下是关于vmcore的一些关键点: 生成vmcore Kdump&#xf…...

[线段树] 回转寿司

题目描述 酷爱日料的小 Z Z Z 经常光顾学校东门外的回转寿司店。在这里,一盘盘寿司通过传送带依次呈现在小Z眼前。 不同的寿司带给小Z的味觉感受是不一样的,我们定义小 Z Z Z 对每盘寿司都有一个满意度。 例如小 Z Z Z 酷爱三文鱼,他对…...

RobotFrameWork详解-RF框架脚本测试集成

Robot Framework是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发(ATDD)。 之前讲过很多RF框架的内…...

【操作系统】实验八:添加/proc文件系统

实验八 添加/proc文件系统 8.1 实验目的 通过加载内核模块,为/proc文件系统创建以下内容: 一个名叫proc_test的子目录。 一个名叫current的文件,只读,读出的内容是读它的进程的情况。 一个名叫current_too的链接,…...

操作系统(8)死锁

一、概念 死锁是指在一个进程集合中的每个进程都在等待只能由该集合中的其他进程才能引起的事件,而无限期地僵持下去的局面。在多任务环境中,由于资源分配不当,导致两个或多个进程在等待对方释放资源时陷入无限等待的状态,这就是死…...

3D 生成重建039-Edify 3D:Nvidia的3D生成大模型

3D 生成重建039-Edify 3D:Nvidia的3D生成大模型 文章目录 0 论文工作1 论文方法2 实验结果 0 论文工作 文档介绍了Edify 3D,一种为高质量的3D资产生成而设计的高级解决方案。首先在多个视点上合成了所描述对象的RGB和表面法线图像正在使用扩散模型。然后使用多视图…...

vue绕过rules自定义编写动态校验

今天犯了个低级错误,虽然走了很多弯路,但这个过程还是值得记录一下 例子如下,有两个输入框: 第一个是套餐选择下拉框,可以下拉选择三个内容 第二个要根据上面的套餐选择三个选项来决定怎么显示,使用v-if&…...

.NET中的JSON序列化库:Newtonsoft.Json与System.Text.Json对比与示例

在.NET生态系统中,存在多个用于JSON序列化的库,其中最为常用和知名的包括Newtonsoft.Json(也称为Json.NET)和System.Text.Json。以下是这两个库的区别: Newtonsoft.Json(Json.NET) 功能与灵活…...

Electron-Vite 项目搭建(Vue)

前提条件 Node.js: 确保已安装 Node.js 版本 18 或更高版本 (推荐使用最新稳定版)。Vite: 确保 Vite 版本为 4.0 或以上。包管理工具: 推荐使用 pnpm,但也可以使用 npm 或 yarn。 安装 Electron-Vite 首先,在项目中安装 electron-vite 作为开发依赖&a…...

Elasticsearch Java Api Client中DSL语句的查询方法汇总

说明:示例代码依赖的是co.elastic.clients:elasticsearch-java:8.16.1。 1、termQuery 方法 用途:用于精确匹配某个字段的完全相等的值。这在查询如文档的 ID、状态码等具有明确取值的字段时非常有用。参数说明: field:这是一个…...

Linux之远程登录

一、使用ssh命令登录 winR打开cmd输入命令 # root是命令,192.168.101.200是地址 ssh root192.168.101.200是否要保存密码,就是yes以后可以免密登录,这里就yes了 输入密码,就登录成功了 操作完成之后,输入命令退出 e…...

医学图像分割数据集腹部肝脏多器官图像分割数据集labelme格式860张10类别

数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数):860 标注数量(json文件个数):860 标注类别数:10 标注类别名称:["liver","stomach","o…...

Xerces-C,一个成熟的 C++ XML 解析库!

嗨,大家好!我是一行。今天咱们来探索 Xerces-C,它可是 C里超棒的 XML 解析库哦!能帮咱轻松处理 XML 数据,在很多数据交互、配置文件读取场景都超实用,快来一起学习使用它的妙招吧。 一、Xerces-C 是什么&am…...

go语言中context的用法

0 概述 Context 是 Go 语言中非常重要的一个概念,它主要用于跨多个函数或 goroutine 传递 取消信号、超时控制、截止时间 和 请求范围数据。在并发编程中,Context 提供了更好的控制和管理,尤其是当你需要在多个 goroutine 之间传递状态或进行…...

UE5编辑器下将RenderTarget输出为UTexture并保存

在使用UE5开发项目时,RenderTarget是一种非常强大的工具,常用于生成实时纹理效果、后处理和调试。而将RenderTarget的内容转换为UTexture并储存,是许多编辑器内的需求都需要的功能。 1.材质球输出至Texture 首先创建一个Actor类&#xff0c…...

探秘 AI Agent 之 Coze 智能体:从简介到搭建全攻略(4/30)

一、Coze 智能体概述 (一)Coze 智能体是什么 Coze 智能体是基于机器学习和自然语言处理技术的软件实体,它在人工智能领域扮演着重要的角色,能够像一个智能助手一样,通过与外界环境进行交互学习,进而执行各…...

解决navicat 导出excel数字为科学计数法问题

一、原因分析 用程序导出的csv文件,当字段中有比较长的数字字段存在时,在用excel软件查看csv文件时就会变成科学技术法的表现形式。 其实这个问题跟用什么语言导出csv文件没有关系。Excel显示数字时,如果数字大于12位,它会自动转化…...

蓝桥杯刷题——day4

蓝桥杯刷题——day4 题目一题干题目解析代码 题目二题干题目解析代码 题目一 题干 小蓝和朋友们在玩一个报数游戏。由于今年是2024 年,他们决定要从小到大轮流报出是20或24倍数的正整数。前10个被报出的数是:20,24,40,48,60,72,80,96,100,120。请问第2…...