TCP/IP协议攻击与防范

news2024/11/28 1:54:32

 一、TCP/IP协议攻击介绍

1.1 Internet的结构

LAN:局域网  WAN:广域网   WLAN:无线局域网

私有IP地址与公有IP地址? 

私有地址:A类:10.0.0.0~10.255.255.255
B类:172.16.0.0~172.31.255.255
C类:192.168.0.0~192.168.255.255

NAT技术:网络地址转换,将私有地址转换成公网地址。

1.2 TCP/IP协议栈

ISO:国际标准化组织

物理层:定义了线缆、接口和电压的标准-----数据以比特流进行传输

数据链路层:数据以数据帧的方式进行传输,是以MAC地址进行寻址,设备:交换机

网络层:数据以IP包的方式进行传输,是以IP地址进行寻址,设备:路由器 协议:IP/ICMP/ARP

传输层:以端口来确定数据的收发,协议:TCP/UDP

会话层:建立会话

表示层:对数据进行压缩、加密码、解密等

应用层:就是指各种应用程序(软件)

实际使用的是:TCP/IP模型(五层、四层)

1.3 TCP/IP协议栈典型封包过程

1.4 IP网络互连的原理


1.5 TCP/IP网络协议栈-安全缺陷与攻击技术

1.6 基于TCP/IP协议簇的安全架构

二、MAC泛洪攻击的实施与防御

MAC泛洪攻击是一种针对局域网交换机的攻击方式,目的在于窃取局域网内用户的通信数据。

2.1 MAC泛洪攻击原理

MAC泛洪攻击主要是利用局域网交换机的mac学习和老化机制。

交换机的工作流程如下

局域网中的pc1发送数据帧给pc2,经过交换机时,交换机会在内部mac地址表中查找数据帧中的目标mac地址,如果找到就将该数据帧发送到相应的端口,如果找不到,交换机就会向入端口以外的所有端口发送此数据帧【就是所谓的广播,也叫泛洪】。

mac表的结构

内部mac表一般8k左右,如果mac表满了,其他mac地址就加不进来。

交换机的mac学习过程

        一开始没有主机连接,交换机内的mac表是空白的,此时就要进行学习。

        当PC1往PC2发送数据经过交换机时,交换机会把数据帧中的源mac地址和进入的端口号记录到mac表中;由于一开始mac表中没有PC2的mac地址和端口绑定,所以交换机会将这个数据帧进行广播【泛洪】。

        本网段中的每台主机会比对数据帧的目的mac地址是否和自身一样,如果一样就应答,如果不一样,就丢弃。

        当PC2接收到数据帧会应答。

        应答数据帧经过交换机时,交换机会将应答数据帧的源mac地址和端口号学习到mac表中,也就是PC2的mac地址和端口号绑定。

        交换机根据应答数据帧的目的mac地址,开始查询mac表,发现PC1的记录存在,就根据这绑定的端口号,直接将应答数据帧发给了PC1。

交换机的mac老化机制

  1.         若交换机与某台主机长时间(一般为300秒)未通信,交换机就会把该主机的mac地址从mac地址表里删除掉,等下次通信时重新学习地址。

泛洪攻击的可能性

        正常的通信是除非一开始mac表中没有目标主机的mac和端口,这样才进行数据广播,只要mac表中有相应的绑定关系,之后两台主机间的通信,都是由交换机直接根据mac和端口绑定进行转发,其他的主机是获取不到这两台主机之间的数据的。

        泛洪攻击的目标就是想获取主机之间的通信数据。要想达到这个目的,就需要强迫交换机进行数据广播,那就要实现mac表中没有目标主机 的mac和端口绑定。泛洪攻击的实现方法就是通过伪造大量的未知mac地址进行通信,交换机进行不断的学习,很快mac表就会被充满,这样正常的主机的mac地址在经过老化之后,就无法再添加到mac地址表中,导致之后的数据都变成了广播。

2.2 MAC泛洪攻击实验

2.2.1 实验拓朴图

2.2.2 实验步骤

准备工作:在kali中安装Dsniff套件

Dsniff是一个基于unix系统网络嗅探工具;Dsniff是一个工具集,主要分为四类:

  1. 被动网络活动监视工具,包括:dsniff、filesnarf、mailsnarf 、msgsnarf、urlsnarf、webspy;
  2. 针对SSH和SSL的MITM(Man-In-The-Middle)"攻击"工具,包括sshmitm和webmitm;
  3. 发起主动欺骗的工具,包括:arpspoof、dnsspoof、macof;
  4. 其它工具,包括tcpkill、tcpnice。

# sudo apt-get install dsniff     //安装dsniff工具

# macof -h                  //查看是否安装成功

# arpspoof -h                //查看是否安装成功

在kali中打开终端执行命令:macof

在kali中再打开一个终端执行命令:wireshark

在Windows XP系统中登录FTP服务器:

在kali上查看并分析抓到的数据包:

2.3 MAC泛洪攻击防范措施

        通过Port-Security(端口安全性)技术可以有效防范MAC泛洪攻击。

        Port-Security可以限制交换机端口上所允许的有效MAC地址的数量,这样交换机就不会无限制的从端口获取MAC条目。

        Port-Security还可以绑定MAC地址,如果该端口连接的MAC地址与绑定的MAC地址不一致就认为发生安全违规。

当发生安全违规,交换机将自动采取相应的动作

        关闭(shutdown):当发生安全违规时端口将关闭。

        保护(protect):当发生安全违规时,带有未知源地址的数据帧将被丢弃。

        限制(restrict):当发后安全违规时,除了将数据帧丢弃之外,还会发出SNMP消息,并记录日志等。

三、ARP欺骗攻击与防护

3.1 ARP协议原理

ARP:地址解析协议,用来实现IP地址到物理地址的映射。

每一台主机都设有一个ARP高速缓存(ARP cache),里面有本局域网上的各主机和路由器的IP地址到硬件地址的映射表。

查询目的主机MAC地址的步骤:

1.ARP进程在本局域网上广播发送一个ARP请求分组

2.在本局域网上的所有主机运行的ARP进程都收到该ARP请求分组

3.主机B的IP地址与ARP请求分组中要查询的IP地址一致,就收下ARP请求分组,并单播向主机A发送ARP响应分组。

4.主机A收到主机B的ARP相应分组以后,就在其ARP高速缓存中写入主机B的IP地址到硬件地址的映射。

5.在Windows系统中可以通过arp -a查看arp缓存表信息。


3.2 ARP攻击原理

3.2.1 ARP断网攻击原理

ARP攻击就是通过伪造IP地址和MAC地址的对应关系,使得网络无法正常通信。

3.2.2 ARP欺骗原理

伪装成网关

欺骗源把自己(或其他非网关主机)伪装成网关,向局域网内的目标主机发送ARP应答报文,使得局域网内的主机误以为欺骗源的MAC地址是网关MAC的地址,并将原本应该流向网关的数据都发送到欺骗源。

伪装成主机

欺骗源2把自己伪装成局域网内的另一台主机3将主机3的IP地址对应的MAC地址替换为欺骗源C的IP地址对应的MAC地址,使得局域网内的主机1发往主机3的报文都流向主机2,如下图所示:

3.3 ARP攻击实验

3.3.1实验拓朴

3.3.2 实验步骤

场景一:(让宿舍室友断网)ARP网关欺骗:

在客户机上测试是否能上网,并查看Arp缓存表

在Kali上进行ARP攻击:

$ nbtscan 192.168.149.0/24    //扫描存活主机

$ route -n     //查看网关地址

#arpspoof -i eth0 -t 192.168.149.151 192.168.149.2    //伪装网关实现断网攻击

说明:arpspoof -i 网卡 -t 目标IP 网关

在客户机测试是否能上网,并查看ARP缓存表:

场景二(监控室友网络)

为使受害者主机的数据包能够顺利收发,我们需在Kali Linux中开启IP转发功能

# echo 1 > /proc/sys/net/ipv4/ip_forward

并在kali中打开wireshark工具对数据流量进行监控

# wireshark

在客户机中打开网页上网

在kali机中对流量进行分析

场景三:伪装成服务器,窃取用户的用户名和密码

# arpspoof -i eth0 -t 192.168.149.151 192.168.149.155

在客户端登录FTP服务器

在Kali机查看用户登录FTP服务器的用户名和密码

3.4 ARP攻击的防范措施

使用静态ARP表

将MAC地址和IP地址绑定在一起,避免动态ARP请求引发的攻击,如:网关/关键服务器。

命令格式:arp -s IP地址 MAC地址 类型

如:>arp -s 192.168.149.2  00-50-56-e9-07-70

-s—将相应的IP地址与物理地址的捆绑。

-d—删除所给出的IP地址与物理地址的捆绑。

-a—通过查询Arp协议表来显示lP地址和对应物理地址情况。

启用ARP欺检测

一些网络设备可以检测到ARP欺诈攻击,及时发现异常的ARP请求,并对网络流量进行限制,从而防止ARP攻击。

使用VPN

通过VPN建立虚拟专用网络,可以避免ARP攻击带来的风险。

加强网络安全管理

网络管理员可以对网络流量进行监控,及时发现异常的ARP请求,并及时采取措施,限制恶意流量的传输,从而保护网络安全。

使用网络安全设备

例如防火墙、入侵检测系统等设备可以帮助管理员检测和防范网络攻击,包括ARP攻击。

四、ICMP路由重定向攻击

4.1 ICMP介绍

ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

测试网络是否通信:ping

路由跟踪:tracert

4.2 ICMP重定向

ICMP重定向报文是ICMP控制报文中的一种。是用来提示主机改变自己的主机路由从而使路由路径最优化的一种ICMP报文。其概念理解的要义是原主机路由不是最佳路由,而其默认网关提醒主机优化自身的主机路由而发送的报文。

4.3 ICMP攻击原理

ICMP重定向信息是路由器向主机提供实时的路由信息,当一个主机收到ICMP重定向信息时,它就会根据这个信息来更新自己的路由表。由于缺乏必要的合法性检查,如果一个黑客想要被攻击的主机修改它的路由表,黑客就会发送 ICMP重定向信息给被攻击的主机,让该主机按照黑客的要求来修改路由表。

4.4 ICMP重定向攻击实例

4.4.1 实验拓朴:

4.4.2实验步骤:

在被攻击机上查看被攻击前的路由表:

C:\Documents and Settings\Administrator>route print

在kali机上开启路由转发

#echo 1 > /proc/sys/net/ipv4/ip_forward

在kali机中安装netwox工具

# apt-get install netwox

在kali机中使用netwox工具实现icmp重定向攻击

netwox 86 -f “host {被攻击主机ip地址}” -g “{新指定的网关ip地址}” -i “{当前网关ip地址}”

# netwox 86 -f "host 192.168.149.151" -g "192.168.149.156" -i "192.168.149.2"

在kali中另开一个终端并打开wireshark进行抓包可以看到被攻击的访问流量,如下图所示:

在被攻击机查看路由表,可以看到所有访问流量都是经过kali机进行访问的,如下图:

netwox工具使用参考:https://blog.51cto.com/u_13389043/6217697
ICMP协议介绍:https://zhuanlan.zhihu.com/p/369623317

4.5 ICMP重定向攻击防范措施

在网络边界合理配置防火墙安全策略以预防攻击,一般除了出站的ICMP Echo Request、出站的ICMP SourceQuench、进站的TTL Exceeded和进站的ICMP DestinationUnrcachablc 之外,其它ICMP 消息类型都应该被阻止。

通过端口镜像技术在内网部署sniffer,全面监控网络流量,当发生攻击时,及时分析数据包,定位攻击源。

及时升级系统软件,配置系统自带的默认防火墙以预防攻击,并通过对注册表的修改禁止 ICMP重定向报文、禁止响应ICMP路由通告报文。

五、DNS欺骗攻击

5.1 DNS工作原理

5.1.1 DNS概述

DNS就是域名系统,是因特网中的一项核心的服务,是用于实现域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用记住能够被机器直接读取的IP数串。通过主机名,得到该主机名对应的IP地址的过程就是域名解析(或者叫主机名解析)。

作用:将域名解析成IP地址  正向查询

      将IP地址解析成域名  反向查询

5.1.2 DNS域名结构

为了处理扩展性问题,DNS使用了大量的DNS服务器。大致来说,有3种类型的服务器:根DNS服务器、顶级域(Top-Level Domain.TLD)DNS服务器和权威DNS服务器

根DNS服务器

因特网上有13个根DNS服务器,这13个服务器实际上是一个冗余的计算机网络以提 供安全性和可靠性;它主要提供TLD服务器的IP地址

顶级域DNS服务器

负责顶级域名,如com,org,net,edu,gov以及各个国家的顶级域名,主要提供权 威DNS服务器的IP地址

权威DNS服务器

互联网上的每一个能够公共访问的主机都具有一个DNS记录,这些记录由某些组织机 构的权威服务器保存。例如常见的服务提供商以及学校和公司都会实现和维护自己的 权威服务器来保存一些主机DNS记录。

本地DNS服务器

该DNS服务器不属于上述的层次结构。但它发挥着极其重要的作用

各种DNS服务器交互的过程如图所示:

上述例子中利用了递归查询迭代查询

5.2 常见的DNS攻击及原理

5.2.1 域名劫持

通过采用黑客手段控制了域名管理密码和域名管理邮箱然后将该域名的DNS录指向到黑客可以控制的DNS服务器,然后通过在该DNS服务器上添加相应域名纪录,从而使网民访问该域名时,进入了黑客所指向的内容。

这显然是DNS服务提供商的责任,用户束手无策。

5.2.2 缓存投毒

利用控制DNS缓存服务器,把原本准备访问某网站的用户在不知不觉中带到黑客指向的其他网站上。其实现方式有多种,比如可以通过利用网民ISP端的DNS缓存服务器的漏洞进行攻击或控制,从而改变该ISP内的用户访问域名的响应结果;或黑客通过利用用户权威域名服务器上的漏洞,如当用户权威域名服务器同时可以被当作缓存服务器使用,黑客可以实现缓存投毒,将错误的域名录存入缓存中,从而使所有使用该缓存服务器的用户得到错误的DNS解析结果。

5.2.3 ddos攻击

一种攻击针对DNS服务器软件本身,通常利用BIND软件程序中的漏洞,导致DNS服务器崩溃或拒绝服务;另一种攻击的目标不是DNS服务器,而是利用DNS服务器作为中间的“攻击放大器”,去攻击其它互联网上的主机,导致被攻击主机拒绝服务。

5.2.4 DNS欺骗

DNS欺骗就是攻击者冒充域名服务器的一种欺骗行为。

如果可以冒充域名服务器,然后把查询的IP地址设为攻击者的IP地址,这样的话,用户上网就只能看到攻击者的主页,而不是用户想要取得的网站的主页了,这就是DNS欺骗的基本原理。DNS欺骗其实并不是真的“黑掉”了对方的网站,而是冒名顶替、招摇撞骗罢了。

5.3 DNS欺骗攻击实验

5.3.1实验拓朴

5.3.2实验步骤

准备工作

启动Apache服务,并测试是否访问成功

# systemctl start apache2

开启端口转发(在root权限下才能修改成功,将ip_forward 修改为 1

注:ip_forward为0时为断网攻击,目标主机会因此无法上网

#echo 1 >  /proc/sys/net/ipv4/ip_forward

修改etter.dns,将目标改为本机ip(同样需要root权限)

# vim /etc/ettercap/etter.dns

利用Ettercap进行DNS欺骗攻击

在客户端测试是否攻击成功

此时客户端无论访问什么网站,访问的目标网站都是kali服务器的网站。

5.4 DNS欺骗攻击防范措施

  1. 从社会工程学角度出发,不轻易相信他人,坚信天上不可能掉馅饼。
  2. 保护自己的网络设备,如果自己的网络设备很安全,那么就很难被木马所感染。
  3. 鉴于DNS欺骗攻击原理,即改变DNS服务器当中的IP地址来实现欺骗攻击,我们可以尝试绑定DNS服务器中的IP地址以及网卡的MAC地址,然后通过得到的DNS服务器应答数据来判断是否为真。

六、TCP协议攻击

6.1 TCP协议介绍

传输控制协议(TCP)是Internet一个重要的传输层协议。TCP提供面向连接、可靠、有序、字节流传输服务。应用程序在使用TCP之前,必须先建立TCP连接;TCP通过校验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输。

参考文档:https://baijiahao.baidu.com/s?id=1686533861418970902&wfr=spider&for=pc

6.1.1 TCP三次握手

6.1.2 TCP四次挥手

在系统中查看连接状态:netstat -an

6.2 TCP攻击及原理

TCP攻击是指利用TCP协议中的漏洞或者缺陷对网络进行攻击的行为。这种攻击方式可以导致网络中的设备不可用,从而影响正常的网络通信。TCP攻击包括SYN Flood攻击、TCP Reset攻击、TCP Session Hijacking攻击等等。这些攻击方式常常被黑客用来发起分布式拒绝服务(DDoS)攻击。

6.2.1 SYN Flood攻击

它利用TCP协议中三次握手的过程,向目标服务器发送大量的TCP连接请求。由于这些请求都是虚假的,服务器在回应这些请求时,需要耗费大量的CPU和内存资源,从而导致服务器无法响应正常的网络请求。

6.2.2 TCP Reset攻击

是利用TCP协议中的RST(reset)标志位,向服务器发送虚假的TCP连接请求。当服务器收到这些虚假的请求时,会断开与客户端的连接。这种攻击方式可以导致服务器中断正常的网络通信。

6.2.3 TCP Session Hijacking

是利用TCP协议中的漏洞,获取正在通信的两个主机之间的会话ID,然后通过伪造的TCP数据包向服务器发送虚假的请求。当服务器收到这些虚假的请求时,会认为它们来自于已经认证的主机,从而给予响应。这种攻击方式可以让攻击者获取敏感信息,例如登录凭证等等。

6.3 TCP攻击实验

6.3.1 实验拓朴

6.3.2 TCP RST攻击

首先在客户端计算机登录到FTP服务器

在kali机上输入以下命令:

# netwox 78 -i "192.168.149.151"

到客户端查看,FTP连接已经断开

6.3.3 TCP会话劫持

hunt实现TCP会话劫持

在kali中使用命令:#ettercap -G

在客户端使用telnet命令登录到Linux服务器

在kali服务器查看会话连接并劫持传话

6.3.4 TCP SYN攻击

在kali机中执行以下命令

# netwox 76 -i "192.168.149.155" -p "21"

此时到服务器上查看CPU使用率,发现CPU占用很高,且服务器已被卡死。

#top   在Linux系统中查看CPU,内存及进程的命令。

在客户端登录服务器的FTP服务,发现已经登录不上了

6.4 TCP攻击防范措施

加强网络安全措施

例如在网络边界处安装防火墙,限制网络流量,限制访问等等,以保护网络的安全;

安装防御系统

例如入侵检测系统(IDS)和入侵防御系统(IPS),可以对网络流量进行实时监测,并 对异常流量进行拦截和处理;

更新网络设备

网络管理员应该定期更新网络设备上的操作系统和应用程序,以确保它们能够及时地修 复已知的漏洞和缺陷;

应用过滤规则

可以通过过滤规则,限制来自特定IP地址和端口的TCP连接请求,从而减少网络中的 异常流量

七、UDP flood攻击

7.1 UDP协议介绍

用户数据报协议(UDP,User Datagram Protocol),无状态不可靠,仅仅是传输数据报。

7.2 UDP Flood

带宽耗尽型拒绝服务攻击;

分布式拒绝服务攻击(DDoS);

利用僵尸网络控制大量受控傀儡主机;

通常会结合IP源地址欺骗技术。

7.3 UDP Flood攻击原理

UDP Flood是日渐猖厥的流量型DoS攻击,原理也很简单。常见的情况是利用大量UDP小包冲击DNS服务器或Radius认证服务器、流媒体视频服务器。 100k pps的UDP Flood经常将线路上的骨干设备例如防火墙打瘫,造成整个网段的瘫痪。由于UDP协议是一种无连接的服务,在UDP FLOOD攻击中,攻击者可发送大量伪造源IP地址的小UDP包。但是,由于UDP协议是无连接性的,所以只要开了一个UDP的端口提供相关服务的话,那么就可针对相关的服务进行攻击。

正常应用情况下,UDP包双向流量会基本相等,而且大小和内容都是随机的,变化很大。出现UDP Flood的情况下,针对同一目标IP的UDP包在一侧大量出现,并且内容和大小都比较固定。

7.4 UDP Flood攻击实验

7.4.1实验环境

kali机:192.168.149.156

Windows Server 2003:192.168.149.172

Windows XP:192.168.149.151   DNS:192.168.149.172

7.4.2实验步骤

安装DNS服务器

在Windows Server 2003上安装DNS服务,并建立cdjc.com的正向区域和www.cdjc.com的主机记录。

在Windows XP客户端计算机上配置DNS地址指向192.168.149.172

在Windows XP客户端上测试DNS解析,如下图所示:

在kali机上输入以下命令进行UDP Flood攻击:

# hping3 --udp --rand-source -p 53 -d 100 --flood 192.168.149.172

在kali机上使用wireshark抓包,结果如下图所示:

在Windows Server2003服务器上查看CPU使用情况,如下图所示:

在Windows XP客户端上再次进行DNS解析发现已经不能解析域名了

7.4.3 UDP Flood攻击防范措施

禁用或过滤监控和响应服务

禁用或过滤其它的 UDP 服务

网络关键位置使用防火墙和代理机制来过滤掉一些非预期的网络流量

遭遇带宽耗尽型拒绝服务攻击

终端无能为力

补救措施:网络扩容、转移服务器位置

事件响应:汇报给安全应急响应部门、追溯和处置

流量清洗解决方案:ISP为关键客户/服务所提供

八、TCP/IP协议之网络协议攻击防范措施

8.1 监测、预防与安全加固

网络接口层 – 主要安全威胁是网络嗅探

局域网中的监听点检测

网络设计上尽量细分和优化网络结构

关键路径上的网关、路由器等设备的严格安全防护

各类网络采用上层的加密通信协议

互联层

多种检测和过滤技术来发现和阻断网络中欺骗攻击

增强防火墙、路由器和网关设备的安全策略(egress filtering)

关键服务器使用静态绑定IP-MAC映射表、使用IPsec协议加密通讯等预防机制

传输层

加密传输和安全控制机制(身份认证,访问控制)

应用层

加密,用户级身份认证,数字签名技术,授权和访问控制技术以及主机安全技术如审计、入侵检测。

8.2 网络安全协议

8.3 下一代因特网协议

下一代因特网协议

IPv6为代表

ICMPv6、DHCPv6……

没有了ARP

IPv6优势

IPv6具有更大的地址空间:主动扫描和主动传播受到抑制

IPv6使用更小的路由表

IPv6增加了增强的组播(Multicast)支持以及对流的支持(Flow Control) – 提升QoS

IPv6加入了对自动配置(Auto Configuration)的支持

IPv6具有更高的安全性:网络层的数据进行加密....

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

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

相关文章

微信小程序2-地图显示和地图标记

一、index修改页面&#xff0c;让页面能够显示地图和一个添加标记的按钮。 index.wxml <scroll-view class"scrollarea" scroll-y type"list"><view class"index_container"><map id"map" style"width: 100%; h…

【C++】从C语言到C++学习指南

如果你也是从C语言一路过来的&#xff0c;那么请一起看下去吧&#xff01; 文章目录 面型对象程序设计C基础C和C一些语法区别C在非对象方面对C语言的扩充C的一些标准&#xff08;兼容旧标准&#xff09; 首先&#xff0c;在C的学习中&#xff0c;我们要时刻清醒一点&#xff1…

Fakelocation Server服务器/专业版 ubuntu

前言:需要Ubuntu系统 Fakelocation开源文件系统需求 Ubuntu | Fakelocation | 任务一 任务一 更新Ubuntu&#xff08;安装下载不再赘述&#xff09; sudo -i # 提权 sudo apt update # 更新软件包列表 sudo apt upgrade # 升级已安装的软…

探索Python的HTTP之旅:揭秘Requests库的神秘面纱

文章目录 **探索Python的HTTP之旅&#xff1a;揭秘Requests库的神秘面纱**第一部分&#xff1a;背景介绍第二部分&#xff1a;Requests库是什么&#xff1f;第三部分&#xff1a;如何安装Requests库&#xff1f;第四部分&#xff1a;Requests库的五个简单函数使用方法第五部分&…

WPF——ICON按钮制作

前言 首先ICON按钮&#xff0c;即带图标按钮&#xff0c;即图标按钮。 图标按钮在开发时&#xff0c;主要是有两种方式来进行。一是在Button的Content内添加Image&#xff0c;然后设置Image的属性Source来实现&#xff0c;这种方式主要是简单易操作&#xff0c;对于初学者来说…

【MySQL篇】持久化和非持久化统计信息的深度剖析(第一篇,总共六篇)

&#x1f4ab;《博主介绍》&#xff1a;✨又是一天没白过&#xff0c;我是奈斯&#xff0c;DBA一名✨ &#x1f4ab;《擅长领域》&#xff1a;✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux&#xff0c;也在扩展大数据方向的知识面✌️…

三开关VUE组件

一、使用效果 <template><QqThreeSwitch v-model"value" /><!-- <SqThreeSwitch v-model"value" :options"[test1, test2, test3]"><template #left-action><div style"display: flex"><IconMoon…

线段树与树状数组 (C++)

线段树&#xff1a;基于分治思想的二叉树&#xff0c;用于维护区间信息&#xff08;区间和&#xff0c;区间最值等&#xff09;&#xff0c;区间修改和区间查询的时间复杂度为logn 叶子节点存储元素本身&#xff0c;非叶子节点存取区间信息 1.节点&#xff1a;是一个结构体&a…

vue3 uniapp 扫普通链接或二维码打开小程序并获取携带参数

vue3 uniapp 扫普通链接或二维码打开小程序并获取携带参数 微信公众平台添加配置 微信公众平台 > 开发管理 > 开发设置 > 扫普通链接二维码打开小程序 配置链接规则需要下载校验文档给后端存入服务器中&#xff0c;保存配置的时候会校验一次&#xff0c;确定当前的配…

数据结构(初阶6)---二叉树(遍历——递归的艺术)(详解)

二叉树的遍历与练习 一.二叉树的基本遍历形式1.前序遍历(深度优先遍历)2.中序遍历(深度优先遍历)3.后序遍历(深度优先遍历)4.层序遍历&#xff01;&#xff01;(广度优先遍历) 二.二叉树的leetcode小练习1.判断平衡二叉树1&#xff09;正常解法2&#xff09;优化解法 2.对称二叉…

spring boot2.7集成OpenFeign 3.1.7

1.Feign Feign是一个声明式web服务客户端。它使编写web服务客户端更容易。要使用Feign&#xff0c;请创建一个接口并对其进行注释。它具有可插入注释支持&#xff0c;包括Feign注释和JAX-RS注释。Feign还支持可插拔编码器和解码器。Spring Cloud增加了对Spring MVC注释的支持&…

基于Redis内核的热key统计实现方案|得物技术

一、Redis热key介绍 Redis热key问题是指单位时间内&#xff0c;某个特定key的访问量特别高&#xff0c;占用大量的CPU资源&#xff0c;影响其他请求并导致整体性能降低。而且&#xff0c;如果访问热key的命令是时间复杂度较高的命令&#xff0c;会使得CPU消耗变得更加严重&…

CTF-Hub SQL 报错注入(纯手动注入)

​ 当输入1时&#xff0c;发现只有查询正确&#xff0c;基本上可以判断出没有回显 开始注入(工具hackerBar) 题目是报错注入&#xff0c;方向就比较明显&#xff0c;大致说一下用到的函数和原理。 常见报错注入函数&#xff1a; 通过 floor() 报错注入通过 extractValue() …

Elasticsearch中的节点(比如共20个),其中的10个选了一个master,另外10个选了另一个master,怎么办?

大家好&#xff0c;我是锋哥。今天分享关于【Elasticsearch中的节点&#xff08;比如共20个&#xff09;&#xff0c;其中的10个选了一个master&#xff0c;另外10个选了另一个master&#xff0c;怎么办&#xff1f;】面试题。希望对大家有帮助&#xff1b; Elasticsearch中的节…

linux安装mysql8.0.40

一、下载MySQL安装包 1.查看glibc版本 rpm -qa | grep glibc 2.到mysql官网下载安装包 ​ 二、解压安装 1.上传压缩包纸/usr/local 目录下&#xff0c;解压&#xff1a; tar -xvf mysql-8.0.40-linux-glibc2.17-x86_64.tar.xz 2.重命名&#xff1a; mv mysql-8.0.40-linux-…

【大数据学习 | Spark-Core】RDD的五大特性(包含宽窄依赖)

分析一下rdd的特性和执行流程 A list of partitions 存在一系列的分区列表A function for computing each split 每个rdd上面都存在compute方法进行计算A list of dependencies on other RDDs 每个rdd上面都存在一系列的依赖关系Optionally, a Partitioner for key-value RDDs…

在 Taro 中实现系统主题适配:亮/暗模式

目录 背景实现方案方案一&#xff1a;CSS 变量 prefers-color-scheme 媒体查询什么是 prefers-color-scheme&#xff1f;代码示例 方案二&#xff1a;通过 JavaScript 监听系统主题切换 背景 用Taro开发的微信小程序&#xff0c;需求是页面的UI主题想要跟随手机系统的主题适配…

【C语言】int *p[ ] 与 int (*p)[ ] 的区分辨析

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C语言 文章目录 &#x1f4af;前言&#x1f4af;基本概念&#xff1a;数组与指针&#x1f4af;理解 int *p[10] 与 int (*p)[10]1. int *p[10]&#xff1a;存放指针的数组2. int (*p)[10]&#xff1a;指向数组的指针 …

Vue3 el-table 默认选中 传入的数组

一、效果&#xff1a; 二、官网是VUE2 现更改为Vue3写法 <template><el-table:data"tableData"border striperow-key"id"ref"tableRef":cell-style"{ text-align: center }":header-cell-style"{background: #b7babd…

MT6769/MTK6769核心板规格参数_联发科安卓主板开发板方案

MT6769安卓核心板具有集成的蓝牙、FM、WLAN和GPS模块&#xff0c;是一个高度集成的基带平台&#xff0c;结合了调制解调器和应用处理子系统&#xff0c;以支持LTE/LTE-A和C2K智能手机应用。 该芯片集成了两个工作频率高达2.0GHz的ARMCortex-A75内核、六个工作频率高达1.70GHz的…