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 手工注入
- 与数据库交互的相关页面
- 请求头中可能出现注入的地方:http-cookices、referee、user、agent、post等;
- 登录的模块、更新数据信息的页面、注册的模块、留言板模块等
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,…...
科技快讯 | 水滴筹成为民政部指定个人求助网络服务平台;小米超级小爱首次向正式版用户开放;腾讯发布全球首个重症医疗大模型
本地 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
注:本文为 “Process Substitution” 相关文章合辑。 英文引文机翻,未校。 Process Substitution. 进程替换允许使用文件名引用进程的输入或输出。它采取以下形式 <(list)or >(list)进程 list 异步运行,其输入或输出显示为文件名。…...
html转PDF
项目场景: 提示:这里简述项目相关背景: 在项目中会有一些需要页面转成PDF的情况,这里需要配合一些插件可以完成 使用html2canvas将使用canvas将页面转为base64图片流,并插入jspdf插件中,保存并下载pdf。…...
React 之 Redux =》 理解+应用
文章目录 Redux基础介绍一、概述二、元素组成1. Action(动作)2. Reducer(纯函数)3. Store(仓库) 三、原理结构四、场景应用1. 大型复杂的单页应用(SPA)2. 多用户协作的应用3. 数据持…...
生成excel文件(有备注和表头的情况)
要使用 Java 导出 Excel 文件,并且通过 ExcelProperty 注解进行列的映射,可以利用 EasyExcel 库。EasyExcel 是阿里巴巴开源的一款高性能 Excel 读写工具,它支持通过注解将类与 Excel 的列进行映射,简化了 Excel 操作的复杂性。 …...
Docker 安装全攻略:从入门到上手
Docker 安装全攻略:从入门到上手 在当今的软件开发与部署领域,Docker 已经成为了一项不可或缺的关键技术。它能够将应用程序及其依赖项打包成轻量级、可移植的容器,极大地简化了开发、测试和部署的流程。本文将详细讲解在不同操作系统下 Doc…...
@Scheduled注解的使用-SpringBoot-Springtask
Scheduled 注解是 Spring 框架中用于定时任务调度的核心注解之一。通过 Scheduled 注解,开发者可以非常方便地在 Spring 应用程序中定义和配置各种定时任务,包括固定速率执行、固定延迟执行、cron 表达式执行等。本文将详细讲解 Scheduled 注解的各个方面…...
Elasticsearch:使用 Ollama 和 Go 开发 RAG 应用程序
作者:来自 Elastic Gustavo Llermaly 使用 Ollama 通过 Go 创建 RAG 应用程序来利用本地模型。 关于各种开放模型,有很多话要说。其中一些被称为 Mixtral 系列,各种规模都有,而一种可能不太为人所知的是 openbiollm,这…...
Linux 下 Mamba 环境安装踩坑问题汇总(重置版)
导航 安装教程导航 Mamba 及 Vim 安装问题参看本人博客:Mamba 环境安装踩坑问题汇总及解决方法(初版)Linux 下Mamba 及 Vim 安装问题参看本人博客:Mamba 环境安装踩坑问题汇总及解决方法(重置版)Windows …...
(免费送源码)计算机毕业设计原创定制:Java+springboot+MySQL springboot 线上线下一体化的宠物交易
摘 要 网络发布信息有其突出的优点,即信息量大,资源丰富,更新速度快等,很符合人们希望以捷、便利的方式获得最多最有效信息的要求。本系统就是一个线上线下一体化的宠物交易,为商家提供一个信息发布的平台࿰…...
【Rust自学】7.4. use关键字 Pt.2 :重导入与换国内镜像源教程
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 7.4.1. 使用pub use重新导入名称 使用use将路径导入作用域内后。该名称在词作用域内是私有的。 以上一篇文章的代码为例: m…...
自动生成关于软件程序开发的100个文件并可提供下载入口
创建一个包含100个关于软件程序开发的文件并提供下载入口是一个庞大的任务,因为这需要编写大量的代码、文档和示例。不过,我可以提供一个大致的框架和指导,帮助你生成这些文件,并说明如何设置下载入口。 文件生成思路 编程语言文…...
Linux下基本指令
一、什么是指令 指令本质是可执行程序,在执行指令前,先在系统中查找对应的指令。在Linux系统中指令存在于/usr/bin/路径下 二、ls 指令 1、语法 ls [选项][目录或文件] 2、功能 对于目录,该命令列出该目录下的所有子目录与文件。 对于文…...
2024-12-25-sklearn学习(20)无监督学习-双聚类 料峭春风吹酒醒,微冷,山头斜照却相迎。
文章目录 sklearn学习(20) 无监督学习-双聚类1 Spectral Co-Clustering1.1 数学公式 2 Spectral Biclustering2.1 数学表示 3 Biclustering 评价 sklearn学习(20) 无监督学习-双聚类 文章参考网站: https://sklearn.apachecn.org/ 和 https://scikit-learn.org/sta…...
编程考古-传奇的开始Delphi(下)含所有版本.iso
概览 Delphi 的最新版本,即 Delphi 12,勾勒出了自公司创立以来的一条进化之路。该平台不断通过提升开发者生产力、扩展其支持的平台范围以及引入前沿技术来实现自我完善。作为 Embarcadero 提供的主要快速应用开发(RAD)环境&…...
集合stream
1.Collection集合 1.1数组和集合的区别【理解】 相同点 都是容器,可以存储多个数据 不同点 数组的长度是不可变的,集合的长度是可变的 数组可以存基本数据类型和引用数据类型 集合只能存引用数据类型,如果要存基本数据类型,需要存对应的包装类 1.2集合类体系结构【理解】…...
Xshell 和 Xftp 更新提示问题的解决方法及分析
Xshell 和 Xftp 更新提示问题的解决方法及分析 在个人使用 Xshell 和 Xftp 的过程中,通过官网注册使用一段时间后,往往会遇到这样的问题:软件提示“要继续使用此程序,你必须应用最新的更新或使用新版本”。对于那些觉得更新比较麻…...
Docker安装MongoDB
Docker安装MongoDB 1、拉取镜像2、创建容器3、启动容器4、进入容器内部5、进入admin数据库6、添加管理员,其拥有管理用户和角色的权限7、进行认证8、通过admin添加普通用户 1、拉取镜像 docker pull mongo:4.0.32、创建容器 docker create --name mongodb-server …...
解锁自动化新高度,zTasker v2.0全方位提升效率
zTasker 是一款集强大功能与高效操作于一体的自动化任务管理软件,以其简单直观的设计和一键完成操作的特性深受用户喜爱。软件体积小巧,运行速度极快,支持超过 100 种不同的任务类型,并提供 30 多种定时或条件触发方式,…...
Windows Server 安装 MySQL 8.0 详细指南
文章目录 Windows Server 安装 MySQL 8.0 详细指南准备工作安装步骤1. 解压安装包2. 初始化数据目录3. 安装 MySQL 服务4. 启动 MySQL 服务 MySQL 配置文件 (my.ini)5. 设置 root 密码6. 配置远程访问 安全建议常见问题排查性能优化提示结语 👉洛秋资源小站 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(Dynamic Naming and Configuration Service)是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台。它旨在帮助开发者更轻松地构建、部署和管理分布式系统,特别是在微服务架构中。Nacos 提供了简单易用…...
JavaScript 实现动态产品展示网页
JavaScript 实现动态产品展示网页 1. HTML 页面结构2. CSS 样式设计3. JavaScript 实现功能功能总结 本文设计了一个基于 JavaScript 的动态产品展示网页案例,核心功能包括: 动态产品分类过滤:通过点击分类按钮,仅显示属于该分类…...
小程序配置文件 —— 13 全局配置 - window配置
全局配置 - window配置 这里讲解根目录 app.json 中的 window 字段,window 字段用于设置小程序的状态栏、导航条、标题、窗口背景色; 状态栏:顶部位置,有网络信号、时间信息、电池信息等;导航条:有一个当…...
【小程序】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−1011020 进行奇异值分解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数量: 设置合理的reducer的个数 8、设置并行执行 9、CBO优…...
云原生后端开发(一)
云原生后端开发 云原生(Cloud-Native)是指一种构建和运行应用程序的方式,它充分利用了云计算的特点,比如弹性伸缩、自动化部署、容器化等。在云原生的架构下,后端应用通常具备高度可扩展、可维护、易于自动化管理的特…...
Python常用模块详解:从操作系统接口到日志记录
Python常用模块详解:从操作系统接口到日志记录 1. os模块:操作系统接口主要功能示例 2. io模块:流操作主要功能示例 3. time模块:时间操作主要功能示例 4. argparse模块:命令行参数解析主要功能示例 5. logging模块&am…...
修改成清华镜像源解决Anaconda报The channel is not accessible源通道不可用问题
修改成清华镜像源解决Anaconda报The channel is not accessible源通道不可用问题 最近在通过pycharm开发python程序,引用anaconda环境建立虚拟环境时报错,报UnavailableInvalidChannel: The channel is not accessible or is invalid.应该是镜像源访问通…...
Python之Web开发
一、基本概念 Web开发是指创建和维护网站或Web应用的过程。一个典型的Web应用包括前端(客户端)和后端(服务器端)。前端负责用户界面的设计和交互,而后端则处理业务逻辑、数据存储和与数据库的通信。Python作为一门功能…...
CDN如何抵御DDoS攻击
一、DDoS攻击的定义 DDoS(Distributed Denial of Service,分布式拒绝服务)攻击是一种常见且破坏性较大的网络攻击方式。攻击者通过控制大量分布在全球各地的受感染设备(称为“僵尸网络”),同时向目标服务器…...
基于进程信号量的多线程同步机制研究与实现
1 信号量 1.1 原理与概念 信号量机制本质是对于资源的预订操作,线程或者进程预订了之后,确保未来有一段时间,资源是属于我的。 对于预订资源,会有一个最小单位,资源都是以这个最小单位为整体被使用的。 信号量需要做…...
七、队列————相关概念详解
队列————相关概念详解 前言一、队列1.1 队列是什么?1.2 队列的类比 二、队列的常用操作三、队列的实现3.1 基于数组实现队列3.1.1 基于环形数组实现的队列3.1.2 基于动态数组实现的队列 3.2 基于链表实现队列 四、队列的典型应用总结 前言 本篇文章,我们一起来…...
钉钉h5微应用鉴权配置客户端 API 鉴权步骤
这里记录一下使用的钉钉h5微应用 配置客户端 API 鉴权的内容 注意不是所有的都功能都需要鉴权。 先要引入钉钉环境 见下链接 https://blog.csdn.net/KLS_CSDN/article/details/144794982?spm1001.2014.3001.5501 引入鉴权代码到前端页面并配置以下参数: dd.con…...