DDoS技术解析

这里是Themberfue
今天我们不聊别的,我们聊聊著名的网络攻击手段之一的 DDoS,看看其背后的技术细节。
DoS
- 了解 DDoS 前,先来讲讲 DoS 是什么,此 DoS 而不是 DOS 操作系统啊。
- 1996年9月6日,世界第三古老的网络服务提供商 Panix 的服务器受到每秒高达 150 次的异常连接攻击,由于服务器无法正常分辨哪个是正常用户的连接,而疲于这些异常连接,从而导致无法处理正常用户的连接,这次攻击被认为是首个 DoS 攻击的目标。
- DoS,也就是 Denial of Service,即拒绝服务,任何对服务的干涉,使得其可用性降低或者失去可用性均称为拒绝服务。例如一个计算机系统崩溃或其带宽耗尽或其硬盘被填满,导致其不能提供正常的服务,就构成拒绝服务。
- 通过占用网络服务资源让服务器应接不暇,从而拒绝正常的业务流量。其实对网络带宽进行的消耗性攻击只是拒绝服务攻击的一小部分,只要能够对目标造成麻烦,使某些服务被暂停甚至主机死机,都属于拒绝服务攻击。
- DoS 攻击可以具体分成三种形式:带宽消耗型、资源消耗型、漏洞触发型。前两者都是透过大量合法或伪造的请求占用大量网络以及器材资源,以达到瘫痪网络以及系统的目的。而漏洞触发型,则是触发漏洞导致系统崩溃瘫痪服务。
DDoS
- DDoS,也就是 Distributed Denial of Service,是 DoS 攻击的分布式版本,分布式拒绝服务。通俗来说,就是群殴,一台设备持续对一台服务器的攻击有限,而我们引入多台设备一起攻击一台服务器,其攻击的效果是显而易见的。
- 发起攻击的网络一般称为僵尸网络(BotNet),每个僵尸可以是一台个人电脑,一台服务器,甚至是一部智能手机。这些 “僵尸” 的获得可以是黑客通过病毒或木马感染个人设备,亦或是加钱购买多台设备。
- 攻击者控制大量受害设备(如被感染的计算机、物联网设备)形成僵尸网络(Botnet),让它们同时向目标服务器发送大量流量、请求或恶意数据。最终导致服务器资源(如CPU、内存、带宽)耗尽,导致无法响应正常用户请求。网络拥塞,影响服务器和用户之间的通信。
- 通过之前的学习我们知道,OSI五层网络模型,数据从组包到拆包所经历的每一层都有机会发动 DDoS 攻击。
带宽消耗型攻击
DDoS带宽消耗攻击可以分为两个不同的层次;洪泛攻击或放大攻击。洪泛攻击的特点是利用僵尸程序发送大量流量至受损的受害者系统,目的在于堵塞其宽带。放大攻击与其类似,是通过恶意放大流量限制受害者系统的宽带;其特点是利用僵尸程序通过伪造的源IP(即攻击目标IP)向某些存在漏洞的服务器发送请求,服务器在处理请求后向伪造的源IP发送应答,由于这些服务的特殊性导致应答包比请求包更长,因此使用少量的宽带就能使服务器发送大量的应答到目标主机上。
ICMP洪水攻击(ICMP floods)
ICMP洪水攻击是通过向未良好设置的路由器发送广播信息占用系统资源的做法,利用 ICMP(如 ping)发送大量请求,导致网络带宽耗尽。
- 霸占服务器的网络带宽资源是在网络层发动 DDoS 攻击,我们只需要向一台服务器发送大量的 IP 协议数据包,就可以慢慢地消耗掉对方的网络带宽。
- 比如用大家耳熟能详的 ping 工具就可以发动一次 “攻击”,ping 产生的是 ICMP 协议包,ICMP 是 IP 协议中用来进行差错控制的一个协议,全程为 Internet Control Message Protocol,即互联网控制消息协议,其本质上还是一个 IP 协议数据包,这种攻击方式被称为 ICMP洪水攻击(ICMP floods)
UDP洪水攻击(User Datagram Protocol floods)
- UDP(用户数据报协议)是一种无连接协议,当数据包通过 UDP 发送时,所有的数据包在发送和接收时不需要进行握手验证。当大量 UDP 数据包发送给受害系统时,可能会导致带宽饱和从而使得合法服务无法请求访问受害系统。遭受 DDoS UDP 洪泛攻击时,UDP 数据包的目的端口可能是随机或指定的端口,受害系统将尝试处理接收到的数据包以确定本地运行的服务。如果没有应用程序在目标端口运行,受害系统将对源 IP 发出 ICMP 数据包,表明 “目标端口不可达” 。某些情况下,攻击者会伪造源 IP 地址以隐藏自己,这样从受害系统返回的数据包不会直接回到僵尸主机,而是被发送到被伪造地址的主机。有时 UDP 洪泛攻击也可能影响受害系统周围的网络连接,这可能导致受害系统附近的正常系统遇到问题。然而,这取决于网络体系结构和线速。
- 从上述介绍我们得知,这是在 传输层 中发动的 DDoS 攻击,通过发送大量的 UDP 数据包,也可以起到占用网络带宽的效果,但这里就有一个漏洞了,发送 传输层 的数据包,势必会经过 网络层,那么这就会暴露攻击设备的 IP 地址,从而被对方封禁。所以攻击者一般都会伪造 IP 地址隐藏自己。
- 单纯地隐藏 IP 地址似乎没那么 “有趣”,所以人们发明了一种更加有趣的方式,反射攻击,既然可以伪造 IP,那么就不必拘泥于伪造源 IP,同样可以伪造 目的IP,从而达到 “借刀杀人” 的效果。攻击者伪造受害者的 IP 地址,也就是将源 IP 伪造为受害者的 IP 地址,攻击者向多个开放的服务器发送请求(如 DNS、NTP、Memcached),这些服务器会把响应数据(通常比请求数据大得多)直接发送到受害者,受害者被大量流量冲击,导致网络拥塞、服务不可用。这些开放的服务器被称为 “反射器”。
- 在上述基础上,人们还发明了一种更加厉害的,放大攻击,我们都知道 DNS 服务器是用来解析域名的,同时 DNS 查询通常使用 UDP 这个不验证来源的传输协议,综合来看,DNS 就是一个很好的放大器,因为一次 DNS 请求,返回的数据往往大于请求的数据,这里有一个 带宽放大因子(BAF) 的概念,一般一个 60 字节的请求数据可以返回 3000 字节的响应数据,那么 BAF = 3000 / 60 = 50,从而产生 50 倍的放大效果。利用开放的 DNS 服务器,把小请求转化为大响应,并把这些大响应流量回发到受害者。
资源消耗型攻击
TCP洪水攻击
- 因为 TCP 协议有连接的概念,所以还可以攻击服务器的连接资源,服务器和客户端每次建立一个 TCP 连接时,需要经历三次握手,然后把连接信息放入连接表中维护,而连接表的大小是有限的,我们可以让发起攻击的设备直接发起大量的 TCP 连接,从而占满服务器的这个连接表,而无法响应后续的 TCP 连接请求,这种直接的方式被称为 TCP 洪水攻击(TCP Flood)。
- 因为有三次握手的存在,所以 TCP 洪水无法通过伪造 IP 地址来隐藏自己。在建立连接时,如果我们在第一次握手中伪造了 IP 地址,那么服务器向客户端发送的第二次握手就无法到达,因此连接无法建立,连接表的信息就没有变多。
协议分析攻击(SYN Flood,SYN洪水)
- 传送控制协议(TCP)同步(SYN)攻击。TCP 进程通常包括发送者和接受者之间在数据包发送之前建立的完全信号交换。启动系统发送一个 SYN 请求,接收系统返回一个带有自己 SYN 请求的 ACK(确认)作为交换。发送系统接着传回自己的 ACK 来授权两个系统间的通讯。若接收系统发送了 SYN 数据包,但没接收到 ACK,接受者经过一段时间后会再次发送新的 SYN 数据包。接受系统中的处理器和内存资源将存储该 TCP SYN 的请求直至超时。DDoS TCP SYN 攻击也被称为“资源耗尽攻击”,它利用 TCP 功能将僵尸程序伪装的 TCP SYN 请求发送给受害服务器,从而饱和服务处理器资源并阻止其有效地处理合法请求。它专门利用发送系统和接收系统间的三向信号交换来发送大量欺骗性的原 IP 地址 TCP SYN 数据包给受害系统。最终,大量 TCP SYN 攻击请求反复发送,导致受害系统内存和处理器资源耗尽,致使其无法处理任何合法用户的请求。
- 再简单说一下,攻击者只发送 SYN 不作回答,由于 TCP 的重传机制,受害服务器会触发超时重传多次发送 SYN + ACK 直到超时,但问题来了,这时候受害服务器会不断的向攻击者发送 SYN + ACK,比如重传了 10 次,那么攻击者每攻击一次,受害者就会回击 10 次,所谓杀敌 1k 自损 1w 也不过如此,所以攻击者一般会伪造 SYN 的源 IP 地址,比如一个不存在的 IP 或者 是一个倒霉蛋的 IP。
- 同样的思路,在 TCP 协议中也可以通过反射发起攻击,如上所述,向各个反射器发送 SYN,并把发件地址伪造成受害者的 IP,这样大量的 SYN + ACK 数据包就会从各个反射器上涌入受害者,当然这种攻击方式因为无法在目标上建立连接,所以并不属于资源消耗型攻击,还是属于带宽消耗型攻击。
LAND攻击
- LAND攻击(局域网拒绝服务攻击,Local Area Network Denial attack)这种攻击方式与 SYN Flood 类似,不过在 LAND 攻击包中的源地址和目标地址都是攻击对象的 IP。这种攻击会导致被攻击的机器死循环,最终耗尽资源而死机。
RST洪水攻击(RST Flood)
- 在 TCP 协议中,一般用四次挥手结束连接,但为了防止出现异常,一方可以发送一个 RST 数据包强制切断连接,这样我们可以让攻击设备不断的尝试伪造各种 IP 地址,并发送 RST 数据包进行 “盲打”,一旦 IP 和其他的一些配置和某个正常用户的匹配上,就能够切断正常用户与服务器之间的连接。
- 这种攻击方式跟针对用户,比如在一场网络游戏对局中,在获悉对手 IP 地址之后,就可以不断切断对方的游戏设备和服务器的连接,从而干扰该用户的正常游戏。
HTTP Flood(HTTP 洪泛攻击)
- 不论是利用 IP,UDP 还是 TCP 协议攻击,针对的都是网络和连接资源,还有一种直接针对服务器内部资源的攻击方式,消耗目标的计算和 IO 资源。
- 通过之前的学习我们知道,客户端向服务器发送请求,服务器按照客户端的需求查询随后计算出相应的数据并返回给客户端,作为第五层的应用层,应用层通常使用的是 HTTP 协议。
- 所以我们可以对一个站点发送一个 HTTP 洪水攻击,比如利用站点的搜索功能,不断生成大量的关键词送入查询地址,因为 HTTP 请求作为用户直接发起的涉及具体业务的请求,服务器在收到请求需要根据请求而来的数据进行像数据库查询这样的 IO 操作,所以这样的攻击手法会对目标产生更大的消耗。
- 当然,HTTP 洪水也有问题,不能伪造 IP 地址,因为 HTTP 协议实际上是基于 TCP 协议的,需要经历三次握手的过程,所以常见的方法借助网络代理主机,得到不同的真实 IP 发起攻击。
CC攻击
- CC攻击( Distributed HTTP flood,分布式HTTP洪水攻击)向受害服务器发送大量貌似合法的请求(通常为 HTTP GET )。攻击者创造性地使用代理服务器,利用广泛可用的免费代理服务器发动DDoS攻击。许多免费代理服务器支持匿名,这使追踪变得非常困难。
- 2004年,一位匿名为 KiKi 的中国黑客开发了一种用于发送 HTTP 请求的 DDoS 攻击工具以攻击名为 “Collapsar” 的NSFOCUS防火墙,因此该黑客工具被称为 “Challenge Collapsar”(挑战黑洞,简称CC),这类攻击被称作 “CC攻击”。
应用程序级洪水攻击(Application level floods)
- 与前面叙说的攻击方式不同,应用程序级洪水攻击主要是针对应用软件层的,也就是高于 OSI 的。它同样是以大量消耗系统资源为目的,通过向IIS这样的网络服务程序提出无节制的资源申请来破坏正常的网络服务。
漏洞触发型
这类攻击手法,透过尝试触发缓存溢出等漏洞,使操作系统发生核心错误或蓝屏死机,达到拒绝服务攻击。
死亡之ping(ping of death)
- 死亡之Ping是产生超过 IP 协议能容忍的数据包数,若系统没有检查机制,就会宕机。
泪滴攻击
- 每个资料要发送前,该数据包都会经过切割,每个小切割都会记录位移的信息,以便重组,但此攻击模式就是捏造位移信息,造成重组时发生问题,造成错误。
防御方式
拒绝服务攻击的防御方式通常为入侵检测,流量过滤和多重验证,旨在堵塞网络带宽的流量将被过滤,而正常的流量可正常通过。
- 捣毁僵尸网络,并让用户做好个人防护,避免被感染成僵尸设备是一种很好的方法,但这是需要长期持续进行的方案。
- 从 DDoS 的攻击原理上我们可以看出来,伪造 IP 地址是 DDoS 攻击的核心技术之一,一旦攻击者无法伪造 IP 地址,那机会就形同 冢中枯骨,强弩之末,而治理伪造 IP 的方法并不复杂。
- 我们举两个典型的在技术层面上根治 DDoS 攻击的方法。
激进
网络设备 IP 过滤
- 现代互联网的下游,也就是用户设备接入的这一端,设备通过路由(或者多个路由网关)接入 ISP(互联网服务商)。
- 所以只要让路由设备检测 IP,把源地址 IP 不属于本路由所在的网段的数据全部过滤掉。这样试图伪造 IP 的流量就无法发出。
分布式过滤
- 我们知道,庞大的互联网中不同的网段依靠路由把彼此连接。一个数据从 甲 发送到 乙,它的 IP 可以伪造成 丙,但是,其所经过的真实路径不可能作假。
- 从上图便可得知,从丙到乙的数据不可能经过 路由A,但是伪造 IP 的数据从甲发送到乙却经过了 路由A,如果路由能根据 IP 地址的路径逻辑检测出矛盾,那么就可以过滤到这样的流量,从而消灭伪造 IP 的伎俩。
- 上述两种方式都涉及到用户、服务商、设备商,甚至监管部门的等多方的技术方案,那就不能只是一个技术问题,出于商业上投入产出的考虑,往往是木已成舟,积重难返。
- 这两种方案很难被执行,只有有一定影响力的大型企业和机构才能撬动这种涉及全球的多方合作,对于中小企业,甚至是刚起步的创业者来说,并不现实。
保守
DDoS 攻击的可怕之处在于第一个 D(Distributed)——分布式,当一个僵尸网络对目标发起攻击时,很难处理这些来自四面八方的流量。我们正常用户何尝不能不能联合起来,把一个网络服务的流量分散到不同的地方,从而稀释攻击流量。
CDN
- 没错,CDN 又来了,CDN 即 内容分发网络,把一些相对静态的资源作为缓存分发给各个 CDN 节点,在全世界各地都设置一些 CDN 节点,用户在请求的时候从最近的节点返回,这样就在一定程度上缓解了 DDoS 攻击。
- CDN 能缓解 HTTP Flood、CC 攻击 等......
- 当然,CDN 的缓解作用比较有限。
流量清洗
目前还有一种比较主流的,并有一些厂商专门为此开发产品的方案——流量清洗,当获取到流量时,通过 DDoS 防御软件的处理,将正常流量和恶意流量区分开,正常的流量则回注回客户网站,反之则屏蔽。这样一来可站点能够保持正常的运作,仅仅处理真实用户访问网站带来的合法流量。
- 我们可以在服务器前架设一台流量清洗设备,这个设备就像一个身高马大的保镖或秘书,帮助我们对抗 DDoS 流量。
- 比如,在面对 TCP 协议的 SYN 洪水的 DDoS 攻击时,客户端发起的 SYN 先经过清洗设备,由清洗设备回复 SYN + ACK,如果对方应答了,那说明是正常流量,清洗设备再把本次连接交给后方的服务器正常通信,如果对方不应答,则触发超时重传,重传一定次数后断开连接。
- 因为清洗设备人高马大,其作为专门应对攻击的角色,对连接资源做了极大的专门的优化,从而能应对极其海量的连接请求,所以攻击者想要通过 SYN 洪水打垮它非常困难
- 再比如威胁极大的 HTTP 洪水攻击,正常来说,一个 HTTP 请求,很难用传统的方式检测出其是正常流量还是恶意流量,但清洗设备往往会提供专业的流量清洗平台,这些专业做流量清洗的服务商通过多年和 DDoS 攻击的对抗,积累了大量的经验和技术,由于 HTTP 协议无法伪造 IP 地址,所以通过多年的数据积累建立 IP 信用库,那些经常发起攻击的、臭名昭著的 IP 发来的流量就会被过滤掉,顺便将这些 IP 放进黑名单或者封禁异常 IP,这有点像安卓手机的来点标记,这是流量清洗厂商在数据积累上的优势。
- 亦或者,恶意流量由于是通过程序自动发出,而不是人类的操作,所以利用算法对流量进行模式识别就可以被检测出来,这是流量清洗厂商在技术上的优势。
防火墙
- 防火墙可以设置规则,例如允许或拒绝特定通讯协议,端口或 IP 地址。当攻击从少数不正常的 IP 地址发出时,可以简单的使用拒绝规则阻止一切从攻击源 IP 发出的通信。
- 复杂攻击难以用简单规则来阻止,例如 80 端口(网页服务)遭受攻击时不可能拒绝端口所有的通信,因为其同时会阻止合法流量。此外,防火墙可能处于网络架构中过后的位置,路由器可能在恶意流量达到防火墙前即被攻击影响。然而,防火墙能有效地防止用户从启动防火墙后的计算机发起攻击。
网络交换设备自有能力
- 大多数交换机有一定的速度限制和访问控制能力。有些交换机提供自动速度限制、流量整形、后期连接、深度包检测和假IP过滤功能,可以检测并过滤拒绝服务攻击。例如SYN 洪水攻击可以通过后期连接加以预防。基于内容的攻击可以利用深度包检测阻止。
- 和交换机类似,路由器也有一定的速度限制和访问控制能力。
黑洞引导
- 黑洞引导指将所有受攻击计算机的通信全部发送至一个 “黑洞”(空接口或不存在的计算机地址)或者有足够能力处理洪流的网络设备商,以避免网络受到较大影响。
- 不论怎样,DDoS 作为一种历史悠久,但破坏能力巨大的黑客攻击手段,时至今日还是无法被彻底解决。
- 或许你可以说 DDoS 攻击源自互联网通讯架构在设计之初考虑的缺失,而人们现在又却反壮士断腕的决心从根本上消灭它。
- 这种破坏与对抗将长久的存在于互联网世界之中,我们对抗的永远也不是技术上的不确定性,而是设计该技术的人类的不确定性,而我们能做的只是做好防护,保持警惕!!

相关文章:
DDoS技术解析
这里是Themberfue 今天我们不聊别的,我们聊聊著名的网络攻击手段之一的 DDoS,看看其背后的技术细节。 DoS 了解 DDoS 前,先来讲讲 DoS 是什么,此 DoS 而不是 DOS 操作系统啊。1996年9月6日,世界第三古老的网络服务提供…...
28 在可以控制 postgres 服务器, 不知道任何用户名的情况下怎 进入 postgres 服务器
前言 最近有这样的一个需求, 有一个 postgres 服务器 但是 不知道 他的任何的用户名密码, 但是我想要查询这台 postgres 服务器 然后 基于这个需求, 我们看一下 怎么来处理 pg_hba.conf 认证方式修改为 trust 首先将 postgres 服务器的认证方式修改为 trust 这时候 …...
《图解设计模式》笔记(十)用类来表现
二十二、Command模式:命令也是类 一个类调用某方法,虽然调用结果会反映在对象的状态中,但不会留下工作的历史记录。 若有一个类表示“请进行这项工作”的“命令”,每一项想做的工作就不再是“方法的调用”这种动态处理了,而是一个表示命令的类的实例,即可以用“物”来表…...
Kafka日志数据深度解析:从基础查看到高级操作全攻略
#作者:孙德新 文章目录 查看log日志文件(kafka-dump-log.sh)1、查看Log文件基本数据信息2、index文件健康性检查(--index-sanity-check)3、转储文件(--max-message-size)4、偏移量解码(--offsets-decoder)5、日志数据解析(--transaction-log-decoder)6、查询Log文件…...
docker容器部署jar应用导入文件时候报缺少字体错误解决
如题,在导入文件时候报错如下: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11FontManager 经查是缺少对应字体,解决办法有两张: 第一种:…...
npm安装时无法访问github域名的解决方法
个人博客地址:npm安装时无法访问github域名的解决方法 | 一张假钞的真实世界 今天在用npm install的时候出现了github项目访问不了的异常: npm ERR! Error while executing: npm ERR! /bin/git ls-remote -h -t https://github.com/nhn/raphael.git np…...
APP端弱网模拟与网络测试:如何确保应用在各种网络环境下稳定运行
随着智能手机的普及,APP的网络性能成为用户体验的关键因素之一。尤其是在弱网环境下,应用的表现可能严重影响用户的满意度。因此,APP端的网络测试,尤其是弱网模拟,成为了提升产品质量和用户体验的重要环节。 当前APP网…...
从 ClickHouse 到 Apache Doris:在网易云音乐日增万亿日志数据场景下的落地
导读:日志数据已成为企业洞察系统状态、监控网络安全及分析业务动态的宝贵资源。网易云音乐引入 Apache Doris 作为日志库新方案,替换了 ClickHouse。解决了 ClickHouse 运维复杂、不支持倒排索引的问题。目前已经稳定运行 3 个季度,规模达到…...
wordpress模板文件结构超详解
wordpress网站建设中,主题的制作是最为核心的环节。了解模板文件结构是模板制作的第一步,本文所讲的模板文件结构包括两部分,一是指以文件名为概念的文件结构,二是指文件内容的代码结构。 一、如何使模板文件起作用 ↑ wordpres…...
BFS 走迷宫
#include<bits/stdc.h> using namespace std; int a[100][100],v[100][100];//访问数组 n,m<100 struct point {int x;int y;int step; }; queue<point> r;//申请队列 int dx[4]{0,1,0,-1};//四个方向 右下左上 int dy[4]{1,0,-1,0}; int main() { /* 5 4 1 …...
尚硅谷爬虫note005
一、编解码 1.get请求的quote方法 将汉字转为Unicode字符 # _*_ coding : utf-8 _*_ # Time : 2025/2/12 16:33 # Author : 20250206-里奥 # File : demo19_get请求的quote方法 # Project : PythonProject10-14# 景甜page # https://www.baidu.com/s?ieutf-8&f8&rsv…...
mysql中general_log日志详解
介绍 1.记录范围:这个log里面会记录MySQL所有的SQL语句,不管是查询语句,还是DML语句,还是DDL语句,还是DCL语句,这些语句统统都会被记录在general log文件中。就连我们连接和断开MySQL数据库的这些语句。 2…...
计算机毕业设计SpringBoot+Vue.js医院住院管理系统(源码+lw文档+PPT+讲解视频)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
MongoDB 7 分片副本集升级方案详解(下)
#作者:任少近 文章目录 1.4 分片升级1.5 升级shard11.6 升级shard2,shard31.7 升级mongos1.8重新启用负载均衡器1.9 推荐MongoDB Compass来验证数据 2 注意事项: 1.4 分片升级 使用“滚动”升级从 MongoDB 7.0 升级到 8.0,即在其他成员可用…...
AI技术未来趋势
AI技术未来趋势 目录 AI技术未来趋势第一,AGI(通用人工智能)发展步伐在放慢;第二,ChatGPT等问答式AI已接近极限,复杂推理的“慢思考”模式成为新方向;第三,除了少数科技巨头,大多数公司都专注于做专业大模型第四,模型越做越小,进入轻量化时代第五,高质量数据、合成数据使模型知…...
vue 文件下载(导出)excel的方法
目前有一个到处功能的需求,这是我用过DeepSeek生成的导出(下载)excel的一个方法。 1.excel的文件名是后端生成的,放在了响应头那里。 2.这里也可以自己制定文件名。 3.axios用的是原生的axios,不要用处理过的ÿ…...
Flask和Django相比哪个更适合新手?
Flask 与 Django:哪个更适合新手? 对于新手来说,选择 Flask 还是 Django 主要取决于你的具体需求和项目复杂度。以下是两者的详细对比,帮助你做出选择: 1. Flask 优点 简单易用:Flask 是一个轻量级的微框架,代码简洁,易于理解和上手。适合初学者快速入门。灵活性高:…...
【含开题报告+文档+PPT+源码】基于spring boot的固定资产管理系统
开题报告 本研究论文提出了一种基于SpringBoot框架构建的全面且高效的固定资产管理系统,旨在优化企业内部的固定资产全生命周期管理流程。该系统集成了员工权限管理、业务流程处理及数据分析于一体,实现了员工便捷的登录注册功能,并通过安全…...
Unity嵌入到Winform
Unity嵌入到Winform Winform工程🌈...
Svelte 最新中文文档翻译(8)—— @html、@const、@debug 模板语法
前言 Svelte,一个非常“有趣”、用起来“很爽”的前端框架。从 Svelte 诞生之初,就备受开发者的喜爱,根据统计,从 2019 年到 2024 年,连续 6 年一直是开发者最感兴趣的前端框架 No.1: Svelte 以其独特的编…...
Qt Designer菜鸟使用教程(实现一个本地英文翻译软件)
1 安装Qt Designer 安装这个包的时候会自带安装 Qt Designer, 安装目录为python的安装根目录的 Lib/site-packages/qt5_applications/Qt/bin 目录下。 pip install pyqt5-tools2 新建窗体 2.1 新建主窗体 创建之后如下图: 设置主窗口大小: 设置窗…...
CPT205 计算机图形学 OpenGL 3D实践(CW2)
文章目录 1. 介绍2. 设计3. 准备阶段4. 角色构建5. 场景构建6. 交互部分6.1 键盘交互6.2 鼠标交互6.3 鼠标点击出多级菜单进行交互 7. 缺点与问题7.1 程序bug7.2 游戏乐趣不足7.3 画面不够好看 8. 完整代码 1. 介绍 前面已经分享过了关于CPT205的CW1的2D作业,这次C…...
【网络安全 | 漏洞挖掘】跨子域账户合并导致的账户劫持与删除
未经许可,不得转载。 文章目录 概述正文漏洞成因概述 在对目标系统进行安全测试时,发现其运行着两个独立的域名——一个用于司机用户,一个用于开发者/企业用户。表面上看,这两个域名各自独立管理账户,但测试表明它们在处理电子邮件变更时存在严重的逻辑漏洞。该漏洞允许攻…...
利用蓝耘智算平台深度搭建deepseek R1模型,进行深度机器学习
大佬请阅读 前言关于DeepSeek 的显著优点卓越的性能表现低廉的训练成本广泛的应用场景开放的开源策略 DeepSeek 与其他 AI 对比什么是蓝耘智算平台为什么使用蓝耘智算平台搭建我们的deepseek如何使用蓝耘 GPU 智算云平台搭建我们的R1模型并成功进行调用测试11. AVL树节点结构2.…...
传输层协议TCP (上)
文章目录 前言TCP报文格式TCP连接管理连接建立与中止三次握手三次握手的状态变化为什么是三次握手 四次挥手四次挥手的状态变化FIN_WAIT_2 状态可能导致连接长时间不释放的问题TIME_WAIT状态作用 复位报文段非法连接请求其他异常情况 半打开连接同时握手同时关闭 参考资料 前言…...
深度学习框架探秘|Keras:深度学习的魔法钥匙
一、引言:深度学习浪潮中的 Keras 前面的文章我们探秘了深度学习框架中的两大明星框架 —— TensorFlow 和 PyTorch 以及 两大框架的对比 在深度学习的众多框架中,还有一款框架备受开发者们的喜爱 —— Keras 。它就像是一位贴心的助手,为我…...
使用爬虫获取1688商品分类:实战案例指南
在电商领域,获取商品分类信息对于市场分析、选品决策和竞争情报收集至关重要。1688作为国内领先的B2B电商平台,提供了丰富的商品分类数据。通过爬虫技术,我们可以高效地获取这些分类信息,为商业决策提供有力支持。 一、为什么选择…...
MySQL常见错误码及解决方法(1130、1461、2003、1040、2000、1049、1062、1129、2002、1690等)
目录 【问题1】、FATAL: error 1130: Unknown error 1130 【问题2】、FATAL: error: 1461 【问题3】、ERROR 2003 (HY000): Cant connect to MySQL server on "" (113) 【问题4】、FATAL: error 2003: Cant connect to MySQL server on 172.19.111.151 (111) 【问…...
【k8s应用管理】kubernetes lngress资源管理
文章目录 补充**Service 的作用****Kubernetes 外部访问方案** Kubernetes IngressIngress 概述Kubernetes 外部访问方案对比Ingress 的组成**Ingress-Nginx 工作原理**Ingress 控制器的部署方式1. DaemonSet Host 网络模式2. Deployment NodePort/LoadBalancer Service 创建…...
2.11学习
misc buu-荷兰宽带泄露 下载附件得到了一个后缀为.bin的文件 是宽带数据文件,用RouterPassView工具进行查看。大多数现代路由器都可以让您备份一个文件路由器的配置文件,然后在需要的时候从文件中恢复配置。路由器的备份文件通常包含了像您的ISP的用户…...


