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

OWASP~SQL注入

文章只做学习知识,禁止违法。

一、简介

    SQL注入是一种Web应用代码中的漏洞。在工作中渗透测试工作时,使用工具扫描、手工注入和绕过WAF注入等找注入点,其中一层不变的构造特殊请求,使其与数据库SQL语句进行闭合。测试完成闭合时会附加其他命令,例如:任意查询命令、创建数据库/表、更新数据库/表的内容,更改用户权限、删除数据/表/数据库、执行系统命令等。

     通俗的讲SQL注入产生的原因是,后台WEB程序代码,没有对B、C端传入的参数过滤判断和基本的设备防护,使攻击者可以修改构造参数,自定义SQL语句让web程序执行,给数据库造成伤害。

二、SQL注入资料

《SqlMap从入门到精通》

靶场:pikachu、vulnhub、墨者学院

很好的博客:HTTP Host 头攻击 -- 学习笔记_白名单校验host头的域-CSDN博客

HTTP 请求 Header 中的 Accept-Language 字段中的权重系统介绍-CSDN博客

三、探测方法

0x00 手工注入

  1. 与数据库交互的相关页面
  2. 请求头中可能出现注入的地方:http-cookices、referee、user、agent、post等;
  3. 登录的模块、更新数据信息的页面、注册的模块、留言板模块等

0x01 工具找注入点

1、探测工具(SQLMAP)

2、长亭科技 Xray 2.0

3、BP扫描

4、AWVS  15.4、APP-SCAN 10.5

5、代码审计HP-fority

6、Seay PHP代码审计工具2.1公测版

0x02 站点功能模块找注入点

1、登录、注册页面

2、修改(更新)数据页面

3、留言板页面

4、搜索查询页面

5、删除页面

四、SQL注入原理

程序命令和用户数据之间没有做到泾渭分明,这使得攻击者有机会将程序命令当作用户输入的数据提交给web程序,操作数据库。
切记:注入最终是数据库,与脚本、平台、数据库类型无关;

五、SQL注入框架流程图

六、SQL注入危害现状

        任意查询命令、创建数据库/表、更新数据库/表的内容,更改用户权限、删除数据/表/数据库、执行系统命令等。

        可读取/修改数据库中的库和表、获取用户的账号,密码(可能被加密过),邮箱,联系方式、信用卡信息、修改产品价格、删除数据、可执行系统命令、修改权限,获取系统管理权限、修改任意文件、安装后门等。

七、SQL注入靶场

靶场:pikachu、vulnhub、墨者学院、SQLI-LABS

八、SQL注入的原因

0x00 注入的分类

1、数字型注入(参数=数字)

2、字符型注入(参数=字符)

3、搜索型注入

0x01 注入提交方式

1、GET提交

2、POST提交

3、Cookie提交

4、Http-header-User-Agent注入

5、Http-X-Forwarded-For

6、Http-header-Accpet

0x02 注入攻击类型与方式

 0x00 时间盲注

常用的延时函数指令: repeat、sleep()、benchmark()、WAITFOR DELAY ‘0:0:5’---

payload  kobe' and if((substr(database(),1,1))= 'p',sleep(5) ,null)#
payload  kobe' and sleep(5)#

0x01 布尔型盲注

介绍:如在MySQL中判断数据名长度的输入为1' and length(database()) = 10 #,通过相应的正确与否判断数据名的长度是否为10,猜测数据库中数据的具体内容时,可以借助书本上SUBSTR、LIMIT、ASCII等一些特殊的命令及函数进行猜测;

布尔型盲注常用的函数:ascii()、regexp()、like()、left()、ord()、mid()、substr()

payload  kobe’ or 1=1#
payload  kobe' and 1=1#
payload vince' and ascii(substr(database(),1,1))=112#

 0x02 报错型盲注

        在MYSQL中使用一些指定的函数来制造报错,从而从报错信息中获取设定的信息,常见的select/insert/update/delete注入都可以使用报错方式来获取信息.

基于函数报错注入(insert、update、dalete):updatexml()、extractvalue()、floor()

updatexml(xml_document,xpth_string,new_value)

payload

payload k' and updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1) #

?id=1' and (extractvalue(1,concat(0x7e,(select mid(group_concat(table_name),1,30) from information_schema.tables where table_schema='security'))))--+

 0x03 联合注入

        union操作符用于合并两个或多个SQL语句集合起来,得到联合的查询结果。

联合注入常用函数:database()、user()、version()                

注意:union操作符一般与order by语句配合使用

payload
payload  select id,email from member where username='kevin' union select username,pw from member where id=1;

0x04 堆叠注入

       堆叠注入:从名词的含义就可以看到应该是一堆 sql 语句(多条)一起执行在 SQL 中,分号(;)是用来表示一条 sql 语句的结束。试想一下我们在 ; 结束一个 sql 语句后继续构造下一条语句,会不会一起执行?因此这个想法也就造就了堆叠注入。而 union injection(联合注入)也是将两条语句合并在一起,两者之间有什么区别么?区别就在于 union 或者 union all 执行的语句类型是有限的,可以用来执行查询语句,而堆叠注入可以执行的是任意的语句。

注意:Union injection(联合注入)也是将两条语句合并在一起,但union或者union all执行的语句类型是有限的,只可以用来执行查询语句,而堆叠注入可以执行的是任意的语句。

payload
payload :?id=1’;insert into users(id,username,password) values (‘38’,’less38’,’ruoli’) --+
payload :select * from user where id=1;select load_file('e:/test.txt');        
payload :select * from user where id=1;insert into user(username,password,address,sex,age) values ('范冰冰','123456','北京',2,26);

0x05 宽字节(编码)注入

      宽字节注入的原理基于GBK编码的特性。在GBK编码中,一个汉字由两个字节组成。当在输入的字符前加上%df时,MySQL会将其视为一个汉字,从而忽略掉前面的转义字符。例如,输入“%df'”时,MySQL会将其视为一个汉字“運”,从而使得单引号‘逃逸出来,不再被转义,这样就可以执行SQL注入‌

将输入的字符串进行编码,如base64编码;       

宽字节注入背景:单引号被转义,需要逃逸一下;

宽字节中单引号逃逸过程如下:

1) php.ini中有一个get_magic_quotes_gpc功能,在开启所有的'(单引号),"(双引号),\(反斜线) and 空字符会自动加上转义字符\。
2)以单引号为例子: ?id = 1 %df' and 1=1--+
3)%df' => %df\' (单引号会被加上转移字符\)
4)%df\' => %df%5c' (\的十六进制为%5c)
5)%df%5c' => 縗' (GBK编码时会认为这时一个宽字节)转义字符%5c被吃掉
6)'(单引号)成功逃逸,sql语法正确

0x06 多阶注入

      多阶注入的原理是通过在多个不同的输入点插入SQL代码,每个注入点都可能利用不同的漏洞或权限。例如,攻击者首先通过一个注入点获取基本的数据库信息,然后利用这些信息通过另一个注入点进行更深入的攻击,逐步提升权限。

0x07 XX型注入

username=('xx') or 1=1;

pikachu靶场XX型:') order by 2--+

0x08 HTTP-Header注入

1、Http-header-Accept:客户端能接收的资源类型

2、Http-header-Accept-Encodiing:指定客户端可以理解的内容编码方式。

3、Http-header-Accept-Language:指定客户端解析内容的自然语言

        1、修改字段来改变服务器的响应,这种攻击通常用于攻击处理Accept-language值不当的Web应用程序。

4、Http-header-Connection

5、Http-header-Host:目的是帮助识别客户端要与之通信的后端组件。

        1、攻击者可以通过修改HTTP请求头中的Host字段来尝试访问未经授权的服务或资源。

        2、案例:在某些情况下,例如当前由代理转发时,Host值可能会在到达预期的后端组件之前进行更改。也就发生了Host头攻击。

        3、注意:当碰到单个web服务器托管多个网站或应用程序。多个网站与服务器共享一个公共IP地址,原因是通过代理路由流量,这可能是一个简单的负责平衡设备或某种反向代理服务器。在客户通过内容分发网络(CND)访问网站的情况下,这种设置尤其普遍。

        4、关键点:如果未校验或者直接使用Host头,则Host头可以与一系列其他漏洞“组合拳”攻击,比如:缓存投毒、特殊业务功能的逻辑漏洞、基于路由的SSRF、经典服务端漏洞,如SQL注入(当Host被用于SQL语句时)等。

        5、验证漏洞:修改HTTP头中的Host值,如果观察到响应包中含有修改后的值,说明存在漏洞。

        6、业务场景:HTTP Host头攻击的特点,它被广泛应用于密码重置中毒,窃取重置任意用户密码的令牌。

6、Http-header-Referer:告诉服务器请求是从哪个页面链接过来的。

        1、可以被利用跨站请求伪造(CSRF)攻击;服务器可以通过验证referer头是否来自预期的域;

        2、注意:referer只要在发送GET请求才会发送,而POST请求不包含Referer信息,从而减少攻击面;

7、Http-X-Forwarder-For

        案例: X-Forwarded-For( http请求头注入 ): 127.0.0.1' AND if(length(database())=7,sleep(5),1)

8、User-Agent:了解用户的浏览器和设别信息

       1、如果这些信息被用于动态生成SQL查询,并且没有进行适当的输入验证或转义,那么这里就可能存在SQL注入的风险。

        2、作为整体字符串处理和记录;

        3、整个字段被拼接到SQL查询中,payload覆盖了原有内容。

9、Cookie:Cookie跟踪用户会话和保存用户偏好。

        1、程序错误地将Cookie的内容用于SQL查询,这也可能是一个注入点。

        2、特别是当应用程序使用Cookie中的值来查询数据库时,风险更大。

        3、解析成多个键值对,每个键值对单独处理。

        4、payload插入到特定的键值中,而不是覆盖整个Cookie。

0x09 JSON注入

JSON时存储和交换文本信息的语法,是轻量级的文本数据交换格式。接口数据传输都采用JSON方式进行。JSON文本的MIME类型是"application/json"。

0x03 Access数据库注入攻击者基本技术

0x00 偏移注入

简介:偏移注入是针对Access数据库,当我们注入猜到数据库表名确猜不到字段名的情况下,这种方法就可以帮我们填补。

   ?id=9999 union select 1111,2222,333,4444,* from administrator;

0x04 SQL 注入中的高级查询

0x05 WAF绕过技术

1、WAF是有一个白名单的,在白名单的客户请求将不做检测;安装Bypass Waf插件

2、伪造白名单特殊目录:www.spisec.com/pen/admin/..\news.php?id=1 union select user,password from mysql.user

3、直接攻击源站,原理通过DNS解析到云WAF,访问网站的流量要经过指定的DNS服务器解析,然后进入Waf节点进行过滤,最后访问原始服务器,如果能通过一些手段(比如C段、社工)找到原始的服务器的地址,便可以绕过。

4、复参数绕过:pen/news.php?id=1&id=union&id=select&id=user,password&id=from%20mysql.user

5、Waf触发规则的绕过,策略一:特殊字符替换空格(MYSQL用%0a是换行,SQLServer用/**/代替空格);

6、URL添加垃圾字符

7、编码绕过:http://10.0.0.103:99/sql.php?id=1%26%26%20true;

8、组合绕过Waf:(http://10.0.0.103:99/sql.php?id=1 and mod(8,7) in (1));

9、内联注释绕过:?id=1  union /*!77777cz*//*!77777cz*/ select database/!*77777 a*/() 1,2,3,4#;

10、分块传输:Transfer-Encoding:chunked;

0x07 经典OR注入

1、用户名处输入1' or 1=1 or '1'='1(不含双引号,以下相同),密码处我输入123,其实随便输入什么符号都可以

九、SQL防御方法

1、预编译语句(Prepared Statements)和 参数化查询:这是预防SQL注入的最有效方法之一,预编译使参数传输人不会改变语句的结构;

2、Oracle 数据库可以使用储存过程;

3、使用ORM(对象关系映射)工具;

4、使用适当的错误处理机制;

5、限制数据库权限;

6、使用WEB应用防火区WAF;

7、定期对安全进行审计和代码审查;

8、编写参数过滤器,同时使用参数化查询;

十、SQL注入总结

0x00 基础知识

1、MySQL 、MSSQL、Tomcat、远程桌面连接的端口是多少?

MySQL:默认端口为3306

MSSQL:默认端口为1433

Tomcat:默认端口8080

远程桌面连接:默认端口3389

2、永恒之蓝攻击的是哪个服务和端口?

永恒之蓝攻击主要利用了SMB协议的445端口和139端口。

通过协议可以在计算机间共享文件、打印机、命名管道等资源。

危害:永恒之蓝攻击通过这些端口利用SMB1 和 NBT 中的远程代码执行漏洞,进行勒索病毒、挖矿、反弹shell等攻击。

3、SM-08067是哪个端口?

SM-08067漏洞涉及的是SMB服务的445端口。SM-08067漏洞全称是“Windows Server服务RPC请求缓冲区溢出漏洞”。

加固:1、更新系统和应用;2、配置防火墙;3、使用墙密码;4、定期扫描;

4、平时挖漏洞提交到哪些平台?

1、奇安信补天

2、cnvd

3、教育漏洞平台

4、漏洞银行

5、wooyun

6、漏洞盒子众测平台

0x01 高级知识

1、 不需要任何字母,测试注入点。

http://xxx.xxx.xxx:90/test.php?id=2-1

 2、SQL注入总结

1、抓包要根据包信息和页面功能来判断内容是不是想要的,比如cookie内容;

2、payload选择要判断有一个已知内容为真,就可以用and或者or;判断不了就用or;

0x02 SQL注入监控

1、如何判断SQL注入是否误报?

  答:直接查看攻击IP是否多条语句攻击,只有几条注入语句攻击一般是正常业务造成的,如果一查日志检索发现有攻击IP有大量不同的SQL语句一般是正常攻击。

2、SQL注入有哪些常见的特征?

  答:1、常见的关键字:select、where、order、union、update、floor、exec、information_schema、extractvalue、delete、insert等。

3、SQL注入流量信息

  答:1、流量中含有select、updatexml、floor等数据库操作语句的关键词时,态势感知平台可能会发出SQL注入警告。2、

相关文章:

OWASP~SQL注入

文章只做学习知识,禁止违法。 一、简介 SQL注入是一种Web应用代码中的漏洞。在工作中渗透测试工作时,使用工具扫描、手工注入和绕过WAF注入等找注入点,其中一层不变的构造特殊请求,使其与数据库SQL语句进行闭合。测试完成闭合时会…...

大数据-261 实时数仓 - 业务数据库表结构 交易订单、订单产品、产品分类、商家店铺、地域组织表

点一下关注吧!!!非常感谢!!持续更新!!! Java篇开始了! MyBatis 更新完毕目前开始更新 Spring,一起深入浅出! 目前已经更新到了: H…...

大厂开发规范-如何规范的提交Git

多人协作开发提交代码通常是遵循约定式提交规范,如果严格安照约定式提交规范, 手动进行代码提交的话,那么是一件非常痛苦的事情,但是 Git 提交规范的处理又势在必行,那么怎么办呢? 经过了很多人的冥思苦想…...

深度学习中batch_size

Batch size调整和epoch/iteration的关系 训练数据集总共有1000个样本。若batch_size10,那么训练完全体样本集需要100次迭代,1次epoch。 训练样本10000条,batchsize设置为20,将所有的训练样本在同一个模型中训练5遍,则…...

SpringBoot的pom.xml文件中,scope标签有几种配置?

1.compile(默认) 含义:表示该依赖在项目的所有阶段(编译、测试、运行)都需要。 当你依赖一个库,并且这个库是你项目的核心部分,比如 Spring Boot 的spring - boot - starter - web&#xff0c…...

科技快讯 | 水滴筹成为民政部指定个人求助网络服务平台;小米超级小爱首次向正式版用户开放;腾讯发布全球首个重症医疗大模型

本地 AI 开发利器,初探微软 Win11 AI Dev Gallery 功能 12月27日,科技媒体Windows Latest报道,微软推出AI Dev Gallery功能,助力开发者集成端侧AI。该功能支持Windows 10/11,提供25个示例模型,涵盖多领域。…...

在 Windows 上,如果忘记了 MySQL 密码 重置密码

在 Windows 上,如果忘记了 MySQL 密码,可以通过以下方法重置密码: 方法 1:以跳过权限验证模式启动 MySQL 并重置密码 停止 MySQL 服务: 打开 命令提示符 或 PowerShell,输入以下命令停止 MySQL 服务&#…...

Linux下载RabbitMQ,并解决Github拒绝访问443的问题

RabbitMQ Linux下载资源时,GitHub网站 443 拒绝访问 例如无法直接使用下面命令 rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc在Linux中无法访问Github(外网)资源的都可以采用以下类似的方式 首…...

攻防世界web新手第五题supersqli

这是题目,题目看起来像是sql注入的题,先试一下最常规的,输入1,回显正常 输入1‘,显示错误 尝试加上注释符号#或者–或者%23(注释掉后面语句,使1后面的单引号与前面的单引号成功匹配就不会报错…...

什么是ondelete cascade以及使用sqlite演示ondelete cascade使用案例

什么是ondelete cascade ‌ON DELETE CASCADE是数据库中的一种约束,用于自动删除相关的记录‌。具体来说,当一个表中的记录(父表)被删除时,与其相关的其他表(子表)中的记录也会被自动删除&…...

Wordperss漏洞 DeDeCMS漏洞

Wordperss漏洞 环境搭建 #执⾏命令 cd /vulhub/wordpress/pwnscriptum docker-compose up -d #靶场地址 http://8.155.7.173:8080/wp-admin/ 注册账号 登录 漏洞一:后台修改模板拿WebShell 步骤一:思路是修改其WP的模板写入⼀句话木马后门并访问其文件…...

人才公寓系统|Java|SSM|JSP|

【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7 4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、JSP、jquery,html 5⃣️数据库可…...

SQLite本地数据库的简介和适用场景——集成SpringBoot的图文说明

前言:现在项目普遍使用的数据库都是MySQL,而有些项目实际上使用SQLite既足矣。在一些特定的项目中,要比MySQL更适用。 这一篇文章简单的介绍一下SQLite,对比MySQL的优缺点、以及适用的项目类型和集成SpringBoot。 1. SQLite 简介 …...

sqlserver镜像设置

本案例是双机热备,只设置主体服务器(主)和镜像服务器(从),不设置见证服务器 设置镜像前先检查是否启用了 主从服务器数据库的 TCP/IP协议 和 RemoteDAC (1)打开SQL Server配置管理器…...

Chapter 03 复合数据类型-1

1.列表 Python内置的一种有序、可变的序列数据类型; 列表的定义: [ ]括起来的逗号分隔的多个元素组成的序列 列表对象的创建: (1)直接赋值 >>> list1 []#创建一个空列表赋值给list1 >>> list…...

goview——vue3+vite——数据大屏配置系统

低代码数据大屏配置系统: 数据来源是可以动态api配置的: 配置上面的api接口后,在数据过滤中进行数据格式的转化。 以上内容,来源于https://gitee.com/dromara/go-view/tree/master-fetch/ 后端代码如下,需要更改…...

Linux Shell : Process Substitution

注&#xff1a;本文为 “Process Substitution” 相关文章合辑。 英文引文机翻&#xff0c;未校。 Process Substitution. 进程替换允许使用文件名引用进程的输入或输出。它采取以下形式 <(list)or >(list)进程 list 异步运行&#xff0c;其输入或输出显示为文件名。…...

html转PDF

项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 在项目中会有一些需要页面转成PDF的情况&#xff0c;这里需要配合一些插件可以完成 使用html2canvas将使用canvas将页面转为base64图片流&#xff0c;并插入jspdf插件中&#xff0c;保存并下载pdf。…...

React 之 Redux =》 理解+应用

文章目录 Redux基础介绍一、概述二、元素组成1. Action&#xff08;动作&#xff09;2. Reducer&#xff08;纯函数&#xff09;3. Store&#xff08;仓库&#xff09; 三、原理结构四、场景应用1. 大型复杂的单页应用&#xff08;SPA&#xff09;2. 多用户协作的应用3. 数据持…...

生成excel文件(有备注和表头的情况)

要使用 Java 导出 Excel 文件&#xff0c;并且通过 ExcelProperty 注解进行列的映射&#xff0c;可以利用 EasyExcel 库。EasyExcel 是阿里巴巴开源的一款高性能 Excel 读写工具&#xff0c;它支持通过注解将类与 Excel 的列进行映射&#xff0c;简化了 Excel 操作的复杂性。 …...

Docker 安装全攻略:从入门到上手

Docker 安装全攻略&#xff1a;从入门到上手 在当今的软件开发与部署领域&#xff0c;Docker 已经成为了一项不可或缺的关键技术。它能够将应用程序及其依赖项打包成轻量级、可移植的容器&#xff0c;极大地简化了开发、测试和部署的流程。本文将详细讲解在不同操作系统下 Doc…...

@Scheduled注解的使用-SpringBoot-Springtask

Scheduled 注解是 Spring 框架中用于定时任务调度的核心注解之一。通过 Scheduled 注解&#xff0c;开发者可以非常方便地在 Spring 应用程序中定义和配置各种定时任务&#xff0c;包括固定速率执行、固定延迟执行、cron 表达式执行等。本文将详细讲解 Scheduled 注解的各个方面…...

Elasticsearch:使用 Ollama 和 Go 开发 RAG 应用程序

作者&#xff1a;来自 Elastic Gustavo Llermaly 使用 Ollama 通过 Go 创建 RAG 应用程序来利用本地模型。 关于各种开放模型&#xff0c;有很多话要说。其中一些被称为 Mixtral 系列&#xff0c;各种规模都有&#xff0c;而一种可能不太为人所知的是 openbiollm&#xff0c;这…...

Linux 下 Mamba 环境安装踩坑问题汇总(重置版)

导航 安装教程导航 Mamba 及 Vim 安装问题参看本人博客&#xff1a;Mamba 环境安装踩坑问题汇总及解决方法&#xff08;初版&#xff09;Linux 下Mamba 及 Vim 安装问题参看本人博客&#xff1a;Mamba 环境安装踩坑问题汇总及解决方法&#xff08;重置版&#xff09;Windows …...

(免费送源码)计算机毕业设计原创定制:Java+springboot+MySQL springboot 线上线下一体化的宠物交易

摘 要 网络发布信息有其突出的优点&#xff0c;即信息量大&#xff0c;资源丰富&#xff0c;更新速度快等&#xff0c;很符合人们希望以捷、便利的方式获得最多最有效信息的要求。本系统就是一个线上线下一体化的宠物交易&#xff0c;为商家提供一个信息发布的平台&#xff0…...

【Rust自学】7.4. use关键字 Pt.2 :重导入与换国内镜像源教程

喜欢的话别忘了点赞、收藏加关注哦&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 7.4.1. 使用pub use重新导入名称 使用use将路径导入作用域内后。该名称在词作用域内是私有的。 以上一篇文章的代码为例&#xff1a; m…...

自动生成关于软件程序开发的100个文件并可提供下载入口

创建一个包含100个关于软件程序开发的文件并提供下载入口是一个庞大的任务&#xff0c;因为这需要编写大量的代码、文档和示例。不过&#xff0c;我可以提供一个大致的框架和指导&#xff0c;帮助你生成这些文件&#xff0c;并说明如何设置下载入口。 文件生成思路 编程语言文…...

Linux下基本指令

一、什么是指令 指令本质是可执行程序&#xff0c;在执行指令前&#xff0c;先在系统中查找对应的指令。在Linux系统中指令存在于/usr/bin/路径下 二、ls 指令 1、语法 ls [选项][目录或文件] 2、功能 对于目录&#xff0c;该命令列出该目录下的所有子目录与文件。 对于文…...

2024-12-25-sklearn学习(20)无监督学习-双聚类 料峭春风吹酒醒,微冷,山头斜照却相迎。

文章目录 sklearn学习(20) 无监督学习-双聚类1 Spectral Co-Clustering1.1 数学公式 2 Spectral Biclustering2.1 数学表示 3 Biclustering 评价 sklearn学习(20) 无监督学习-双聚类 文章参考网站&#xff1a; https://sklearn.apachecn.org/ 和 https://scikit-learn.org/sta…...

编程考古-传奇的开始Delphi(下)含所有版本.iso

概览 Delphi 的最新版本&#xff0c;即 Delphi 12&#xff0c;勾勒出了自公司创立以来的一条进化之路。该平台不断通过提升开发者生产力、扩展其支持的平台范围以及引入前沿技术来实现自我完善。作为 Embarcadero 提供的主要快速应用开发&#xff08;RAD&#xff09;环境&…...

集合stream

1.Collection集合 1.1数组和集合的区别【理解】 相同点 都是容器,可以存储多个数据 不同点 数组的长度是不可变的,集合的长度是可变的 数组可以存基本数据类型和引用数据类型 集合只能存引用数据类型,如果要存基本数据类型,需要存对应的包装类 1.2集合类体系结构【理解】…...

Xshell 和 Xftp 更新提示问题的解决方法及分析

Xshell 和 Xftp 更新提示问题的解决方法及分析 在个人使用 Xshell 和 Xftp 的过程中&#xff0c;通过官网注册使用一段时间后&#xff0c;往往会遇到这样的问题&#xff1a;软件提示“要继续使用此程序&#xff0c;你必须应用最新的更新或使用新版本”。对于那些觉得更新比较麻…...

Docker安装MongoDB

Docker安装MongoDB 1、拉取镜像2、创建容器3、启动容器4、进入容器内部5、进入admin数据库6、添加管理员&#xff0c;其拥有管理用户和角色的权限7、进行认证8、通过admin添加普通用户 1、拉取镜像 docker pull mongo:4.0.32、创建容器 docker create --name mongodb-server …...

解锁自动化新高度,zTasker v2.0全方位提升效率

zTasker 是一款集强大功能与高效操作于一体的自动化任务管理软件&#xff0c;以其简单直观的设计和一键完成操作的特性深受用户喜爱。软件体积小巧&#xff0c;运行速度极快&#xff0c;支持超过 100 种不同的任务类型&#xff0c;并提供 30 多种定时或条件触发方式&#xff0c…...

Windows Server 安装 MySQL 8.0 详细指南

文章目录 Windows Server 安装 MySQL 8.0 详细指南准备工作安装步骤1. 解压安装包2. 初始化数据目录3. 安装 MySQL 服务4. 启动 MySQL 服务 MySQL 配置文件 (my.ini)5. 设置 root 密码6. 配置远程访问 安全建议常见问题排查性能优化提示结语 &#x1f449;洛秋资源小站 Windows…...

uniapp小程序使用webview 嵌套 vue 项目

uniapp小程序使用webview 嵌套 vue 项目 小程序中发送 <web-view :src"urlSrc" message"handleMessage"></web-view>export default {data() {return {urlSrc: "",};},onLoad(options) {// 我需要的参数比较多 所以比较臃肿// 获取…...

高效搭建Nacos:实现微服务的服务注册与配置中心

一、关于Nacos 1.1 简介 Nacos&#xff08;Dynamic Naming and Configuration Service&#xff09;是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台。它旨在帮助开发者更轻松地构建、部署和管理分布式系统&#xff0c;特别是在微服务架构中。Nacos 提供了简单易用…...

JavaScript 实现动态产品展示网页

JavaScript 实现动态产品展示网页 1. HTML 页面结构2. CSS 样式设计3. JavaScript 实现功能功能总结 本文设计了一个基于 JavaScript 的动态产品展示网页案例&#xff0c;核心功能包括&#xff1a; 动态产品分类过滤&#xff1a;通过点击分类按钮&#xff0c;仅显示属于该分类…...

小程序配置文件 —— 13 全局配置 - window配置

全局配置 - window配置 这里讲解根目录 app.json 中的 window 字段&#xff0c;window 字段用于设置小程序的状态栏、导航条、标题、窗口背景色&#xff1b; 状态栏&#xff1a;顶部位置&#xff0c;有网络信号、时间信息、电池信息等&#xff1b;导航条&#xff1a;有一个当…...

【小程序】wxss与rpx单位以及全局样式和局部样式

目录 WXSS 1. 什么是 WXSS 2. WXSS 和 CSS 的关系 rpx 1. 什么是 rpx 尺寸单位 2. rpx 的实现原理 3. rpx 与 px 之间的单位换算* 样式导入 1. 什么是样式导入 2. import 的语法格式 全局样式和局部样式 1. 全局样式 2. 局部样式 WXSS 1. 什么是 WXSS WXSS (We…...

矩阵的因子分解1-奇异值分解

文章目录 矩阵的因子分解1-奇异值分解求法归纳例1. 对矩阵 A ( 0 1 − 1 0 0 2 1 0 ) A \begin{pmatrix} 0 & 1 \\ -1 & 0 \\ 0 & 2 \\ 1 & 0 \end{pmatrix} A ​0−101​1020​ ​ 进行奇异值分解1. 计算 A H A A^H A AHA 的特征值和特征向量2. 将奇异值按…...

Hive其十,优化和数据倾斜

目录 Hive优化 1、开启本地模式 2、explain分析SQL语句 3、修改Fetch操作 4、开启hive的严格模式【提高了安全性】 5、JVM重用 6、分区、分桶以及压缩 7、合理设置map和reduce的数量 合理设置map数量&#xff1a; 设置合理的reducer的个数 8、设置并行执行 9、CBO优…...

云原生后端开发(一)

云原生后端开发 云原生&#xff08;Cloud-Native&#xff09;是指一种构建和运行应用程序的方式&#xff0c;它充分利用了云计算的特点&#xff0c;比如弹性伸缩、自动化部署、容器化等。在云原生的架构下&#xff0c;后端应用通常具备高度可扩展、可维护、易于自动化管理的特…...

Python常用模块详解:从操作系统接口到日志记录

Python常用模块详解&#xff1a;从操作系统接口到日志记录 1. os模块&#xff1a;操作系统接口主要功能示例 2. io模块&#xff1a;流操作主要功能示例 3. time模块&#xff1a;时间操作主要功能示例 4. argparse模块&#xff1a;命令行参数解析主要功能示例 5. logging模块&am…...

修改成清华镜像源解决Anaconda报The channel is not accessible源通道不可用问题

修改成清华镜像源解决Anaconda报The channel is not accessible源通道不可用问题 最近在通过pycharm开发python程序&#xff0c;引用anaconda环境建立虚拟环境时报错&#xff0c;报UnavailableInvalidChannel: The channel is not accessible or is invalid.应该是镜像源访问通…...

Python之Web开发

一、基本概念 Web开发是指创建和维护网站或Web应用的过程。一个典型的Web应用包括前端&#xff08;客户端&#xff09;和后端&#xff08;服务器端&#xff09;。前端负责用户界面的设计和交互&#xff0c;而后端则处理业务逻辑、数据存储和与数据库的通信。Python作为一门功能…...

CDN如何抵御DDoS攻击

一、DDoS攻击的定义 DDoS&#xff08;Distributed Denial of Service&#xff0c;分布式拒绝服务&#xff09;攻击是一种常见且破坏性较大的网络攻击方式。攻击者通过控制大量分布在全球各地的受感染设备&#xff08;称为“僵尸网络”&#xff09;&#xff0c;同时向目标服务器…...

基于进程信号量的多线程同步机制研究与实现

1 信号量 1.1 原理与概念 信号量机制本质是对于资源的预订操作&#xff0c;线程或者进程预订了之后&#xff0c;确保未来有一段时间&#xff0c;资源是属于我的。 对于预订资源&#xff0c;会有一个最小单位&#xff0c;资源都是以这个最小单位为整体被使用的。 信号量需要做…...

七、队列————相关概念详解

队列————相关概念详解 前言一、队列1.1 队列是什么?1.2 队列的类比 二、队列的常用操作三、队列的实现3.1 基于数组实现队列3.1.1 基于环形数组实现的队列3.1.2 基于动态数组实现的队列 3.2 基于链表实现队列 四、队列的典型应用总结 前言 本篇文章&#xff0c;我们一起来…...

钉钉h5微应用鉴权配置客户端 API 鉴权步骤

这里记录一下使用的钉钉h5微应用 配置客户端 API 鉴权的内容 注意不是所有的都功能都需要鉴权。 先要引入钉钉环境 见下链接 https://blog.csdn.net/KLS_CSDN/article/details/144794982?spm1001.2014.3001.5501 引入鉴权代码到前端页面并配置以下参数&#xff1a; dd.con…...