漏洞是如何产生的,该怎么提前预防处理

一、漏洞产生原因

漏洞通常指的是在硬件、软件、协议的具体实现或系统安全策略中隐藏的缺陷,这些缺陷可能被攻击者利用,以未经授权的方式访问或损害系统。它们并非源于安装过程或长期运行后的磨损,而是源于编程过程中的人为因素。

在程序开发阶段,如果设计者未能全面考虑所有可能的情况,当程序遭遇看似合理但实际上超出其处理能力的问题时,就可能触发不可预见的错误,形成漏洞。

此外,受编程人员的能力、经验和当时的安全技术水平所限,程序代码中可能还隐藏着其他不易被察觉的缺陷。这些缺陷轻则影响程序的运行效率,重则可能导致系统被非法入侵或数据泄露。

这些漏洞的成因可能多种多样,包括但不限于:

  1. 设计错误:在程序的初始设计阶段,可能因对系统需求理解不足或设计思路有误,导致程序结构存在隐患。

  2. 输入验证错误:程序未能对用户的输入进行充分的验证和过滤,导致恶意输入能够触发程序异常或执行非预期的操作。

  3. 意外情况处理错误:程序未对可能出现的异常或错误情况进行妥善处理,使得程序在遭遇这些情况时无法正常运行或可能产生不可预测的后果。

  4. 边界条件错误:在处理数据或执行算法时,程序未能正确处理边界条件(如数组越界、循环条件错误等),导致程序崩溃或执行错误操作。

  5. 环境错误:程序在特定环境下(如操作系统版本、硬件配置等)可能无法正常运行,或者与其他软件产生冲突,从而形成安全漏洞。

  6. 访问验证错误:程序在验证用户权限或访问控制时存在缺陷,使得非授权用户能够获取敏感信息或执行特权操作。

二、软件漏洞的产生来源

1、缓冲区溢出(buffer overflows)

缓冲区溢出是软件安全漏洞的主要来源。所谓缓冲区溢出,指的就是代码写入的数据超过了缓冲区的边界,比如向大小10KB的缓冲区写如12KB的数据,那么这个缓冲就溢出了。当然,前向溢出也算溢出,也就是写入的数据写入到了缓冲区的起始边界之前。

缓冲区溢出是一种比较常见的编码错误,特别是在字符串处理过程中。缓冲区造成的危害也是比较多样的。比较轻微的就是程序直接崩溃,除了用户体验也没什么大损失;比较严重的就是错误的写入覆盖了其他敏感数据,造成数据的丢失;最严重的莫过于执行恶意代码,因为数据写入越界,恶意代码可以将原先正常的函数修改为自己的代码,从而获得整个软件的执行权。

缓冲区溢出根据溢出的内存类型分为:

  • 栈溢出

  • 栈内的数据溢出。

  • 堆溢出(heap overflow)

  • 堆内的数据溢出

根据溢出的类型可分为overflow及underflow

  • overflow,写入的数据超过了缓冲的边界

  • underflow, 缓冲中有用数据的大小小于缓冲区长度,这有可能造成脏数据的问题

2、未验证输入(Unvalidated Input)

一款应用往往需要接收各种各样的输入,针对一款iOS应用,主要的输入有读取文件,读取用户输入,读取网络传输数据,或通过URL被启动(URL Schema)。各种类型的输入都有可能是非法的,甚至是恶意的,所以针对所有类型的输入,应用都要进行检验,确保输入的数据是符合程序要求的,合理的,合法的数据。

非法输入可能造成的危害主要有:

  • 输入的数据大于接收缓冲,会造成缓冲溢出

  • 格式化字符串注入,对这些字符串进行处理时,如果不小心会造成程序的崩溃,或某些敏感数据被篡改

  • URLSchema中的命令为恶意命令,执行了恶意的命令

  • 代码注入,输入的URL或命令中带有脚本、代码等恶意片段

3、竞争条件(Race Condtions)

如果一个任务的完成需要几个特定的子任务以特定的顺序完成来完成,那么这个任务就是存在竞争条件这个漏洞的。黑客可以通过修改事件完成的顺序来改变应用的行为。

竞争条件类型的漏洞主要有以下两种:

  • Time of Check Versus Time of Use (TOCTOU)

应用运行的过程中,在某个操作之前,比如写文件,都会检查一下文件是否存在,在检查与真正的写入之间的间隔就是一个可以被利用的Race Condition,恶意软件可以将用户检查的文件替换成自己的文件,这样数据就泄露了。

  • Signal Handling

处理信号的过程中,是随时可以被另一个信号的处理打断的,如果在处理一个信号的过程中另一个信号到来,那么这个过程会被马上中断,这样,系统就会处于一种未知的状态。

4、进程间通信(Interprocess Communication)

进程间通信采用的方法很多,共享内存,管道,油槽等,由于通信管道两端的应用的不同,那么,有可能存在这钟管道被恶意利用的肯能性,也就是说,进程间通信也是软件漏洞的一个来源,当与另一个应用通信的时候,要默认此应用是不安全的,要对通信的内容进行安全方面的验证。

5、不安全的文件操作(Insecure File Operation)

应用对文件进行处理时,若果没有进行进行有效的验证,那么有可能处理的文件已经是被恶意软件修改过的,是不安全的。所以,进行有效的验证是安全处理文件的重要保证。不安全文件操作类型有以几种:

读取或写入一个位于其他应用也拥有读写权限路径下的文件。

对文件信息,例如权限等信息没有进行有效验证便进行处理。

对文件操作的返回结果没有进行有效利用

假定一个拥有本地文件名的文件就是真正的本地文件。

6、权限控制问题(Access Control)

很多情况下,权限控制是安全机制保证的核心,同时也是漏洞的主要来源。每个应用都有与其匹配的权限,应用申请的权限应该物尽其用,不能申请超过自身需求的权限,而很多的软件漏洞就是因为应用申请了超过自身需求的权限,比如root权限,然后被恶意软件利用,也就有了对整个系统执行所有操作的权限。

很多情况下,对权限的申请进行验证是明智的选择,例如输入用户名及密码来提升权限。注意,在采用验证机制时,最好使用系统内置的权限验证方法,而不是自己取实现,这里需要额外提一下,权限控制是操作系统级别的,当硬件设备被控制时,各种权限的控制也就显得无力,这种情况下,数据的加密保护就显现出了其价值。

7、社会工程(Social Engineering)

用户往往是安全保证机制中那薄弱的一环。即使提供再强大的安全保全机制,如果用户安全意识薄弱,同样会出现问题。很简单的例子,比如用户将密码设置的非常复杂,服务器端数据库的安全保证也很周全,黑客完全无法通过技术手段窃取用户密码,可黑客一个伪装客服的电话就完全有可能将用户的密码从用户的口中骗取到。这就是所谓的”社会工程”. 在界面,使用习惯上教育,引导用户进行安全的操作,也是软件设计的重中之重。

三、漏洞的基本分类

按照漏洞的形成原因,漏洞大体上可以分为程序逻辑结构漏洞、程序设计错误漏洞、开放式协议造成的漏洞和人为因素造成的漏洞。

按照漏洞被人掌握的情况,漏洞又可以分为已知漏洞、未知漏洞和0day等几种类型。

1、程序逻辑结构漏洞

这种类型的漏洞有可能是编程人员在编写程序时,因为程序的逻辑设计不合理或者错误而造成的程序逻辑漏洞。这种类型的漏洞最典型的要数微软的Windows 2000用户登录的中文输入法漏洞。非授权人员可以通过登录界面的输入法的帮助文件绕过Windows的用户名和密码验证而取的计算机的最高权限。

这种类型的漏洞也有可能是合法的程序用途被黑客利用去做不正当的用途。这种类型的漏洞最典型的就是后面案例中提到的Winrar的自解压功能,程序设计者的本意是为了方便用户的使用,使得没有安装Winrar的用户也可以解压经过这种方式压缩的文件。但是这种功能被黑客用到了不正当的用途上。

这种漏洞用一个比喻可能更容易理解。打一个比方来说,你开了一扇门,在门上开了一个狗洞,专门为了狗方便出入。正常情况下,人应该用钥匙打开锁才能进来。可是有个家伙他发现利用某个窍门人也可以从狗洞进出,那么这个从狗洞进出的方法就可以看着是一个安全漏洞。

2、程序设计错误漏洞

还有一种类型的漏洞是编程人员在编写程序时由于技术上的疏忽造成的漏洞。这种类型的漏洞最典型的是缓冲区溢出漏洞,它也是被黑客利用得最多的一种类型的漏洞。

3、开放式协议造成的漏洞

目前,国际互联网的通信采用的是具有开放性的TCP/IP协议。因为TCP/IP协议的最初设计者在设计该通信协议时,只考虑到了协议的实用性,而没有考虑到协议的安全性,所以在TCP/IP协议中存在着很多漏洞。比如说,利用TCP/IP协议的开放和透明性嗅探网络数据包,窃取数据包里面的用户口令和密码信息;TCP协议三次握手的潜在缺陷所导致的拒绝服务攻击等。

4、人为因素造成的漏洞

一个系统如果本身设计得很完善,安全性也很高,但管理人员安全意识淡薄,同样的会给系统留下漏洞。譬如说,系统本身非常完备安全,但系统登录所需要的管理 员帐户或口令,可是因为设置过于得简单而被黑客猜解出来了,那么其他的环节再安全也没有丝毫意义;再或者虽然管理员设置了很复杂的密码,可是他把密码写在 一张纸上,并随手扔到废纸篓里,那么也同样有可能造成密码泄露而导致系统被黑客入侵。

5、已知漏洞

已知漏洞是指已经被人们发现,并被人们广为传播的公开漏洞。这种类型的特点是漏洞形成的原因和利用方法已经被众多的安全组织、黑客和黑客组织所掌握。安全 组织或厂商按照公布的漏洞形成原因和利用方法,在他们的安全防护产品中或安全服务项目加入针对相应类型漏洞的防护方法。黑客和黑客组织利用公布的漏洞形成 原因,写出专门的具有针对性的漏洞利用程序文件,并能绕过安全防护软件。比如说针对某个IE浏览器版本的IE漏洞利用文件,或者他们干脆利用一些漏洞公布站点上提供的漏洞利用程序文件并不加任何修改地去攻击互联网上的计算机。

产生漏洞的软件的开发商则会针对被公开的漏洞的信息,修补他们开发的程序以供他们的用户修补已经存在漏洞的软件。

6、未知漏洞

未知的漏洞则是指那些已经存在但还没有被人发现的漏洞,这种类型漏洞的特征是虽然它们没有被发现,但它们在客观上已经存在了,它们带给计算机网络安全的是隐蔽的威胁。如果它们哪一天被黑客有意或无意的找出来后就会对计算机网络安全构成巨大的威胁。

所以软件开发商、安全组织、黑客和黑客组织都在努力的发现漏洞,可以说谁先发现了漏洞,谁就可以掌握主动权。如果是软件开发商和安全组织先发现了漏洞,他们就可以在安全防护上取得主动权;如果是黑客或黑客组织先发现了漏洞,他们就可以在攻击上取得主动权。

7、0day漏洞

所谓0day漏洞是指已经被发掘出来,但还没有大范围传播开的漏洞,也就是说,这种类型的漏洞有可能掌握在极少数人的手里。黑客有可能在这种类型的漏洞的信息还没有大范围的传播开的时候,利用这段时间差攻击他们想要攻击的目标机器,因为绝大多数用户还没有获取到相关的漏洞信息,也无从防御,黑客要想得手还是很容易的。

四、漏洞会造成的影响

  • 网络系统风险。操作系统或网络应用的漏洞可能使系统遭受攻击,导致信息丢失或损坏,简单身份验证的漏洞使得黑客更容易利用漏洞进行攻击,影响设备安全。

  • 数据信息风险。利用漏洞如SQL注入、XSS攻击等,黑客可以窃取、篡改或删除数据,尤其是敏感或私密信息,如身份信息和金融账户等,这些信息一旦被泄露或被用于恶意目的,会对个人和机构造成重大损失。

  • 网站漏洞风险。网站程序代码中的缺陷可能导致内部或客户信息被非法获取和利用,从而进行诈骗或信息倒卖,这些漏洞还可能导致网站运行出错或崩溃,给企业带来直接和间接的经济损失。

  • 经济金融损失。漏洞可能被用于入侵金融系统,引发数据被篡改、资金被盗或市场操纵等行为,对个人财富和企业运营造成巨大威胁。

  • 隐私数据泄露。漏洞导致的数据泄露不仅影响个人隐私安全,也可能对国家安全和社会稳定构成威胁。

  • 网络瘫痪。严重的漏洞可能导致整个网络系统或关键基础设施的瘫痪,影响广泛,可能造成巨大的社会和经济损失。

五、什么是漏洞扫描

漏洞扫描是一种自动化的安全测试方法,用于检测计算机系统、网络和应用程序中的漏洞和安全缺陷。漏洞扫描工具会对系统进行自动化的测试,以发现可能存在的安全漏洞和缺陷,如密码弱、SQL注入、跨站脚本攻击等。漏洞扫描工具会模拟攻击者的攻击行为,对系统中的漏洞进行探测和测试,以帮助管理员或开发人员识别和修复系统中的漏洞。

漏洞扫描通常包括以下几个步骤:

  • 信息收集:收集系统、网络或应用程序的信息,如IP地址、端口号、协议等。

  • 漏洞探测:扫描系统、网络或应用程序中的漏洞和安全缺陷,如密码弱、SQL注入、跨站脚本攻击等。

  • 漏洞报告:生成漏洞报告,列出系统中存在的漏洞和安全缺陷,并提供修复建议和措施。

  • 漏洞修复:根据漏洞报告中的建议和措施,修复系统中存在的漏洞和安全缺陷。

六、漏洞扫描的主要目的是什么?

1、发现安全漏洞和缺陷

漏洞扫描可以帮助企业或组织发现其系统、网络或应用程序中可能存在的安全漏洞和缺陷,如密码弱、SQL注入、跨站脚本攻击等。

2、评估安全风险

漏洞扫描可以帮助企业或组织评估其系统、网络或应用程序的安全风险,以便采取相应的安全措施和调整安全策略。

3、提高安全性和可靠性

及时修复漏洞和缺陷可以提高系统的安全性和可靠性,防止安全事故和数据泄露等不良后果。

4、遵守法规和标准

许多法规和标准要求企业或组织对其系统、网络或应用程序进行安全测试和评估,漏洞扫描可以帮助企业或组织遵守相关法规和标准的要求。

七、漏洞扫描对于合规性有什么影响?

1、合规性要求

许多行业标准和法规法律,都要求企业对其信息系统进行定期漏洞扫描,并及时修复发现的漏洞。

2、提高安全性

漏洞扫描可以发现系统中存在的漏洞和安全弱点,及时修复这些漏洞和弱点,可以有效地提高系统的安全性,减少系统被攻击的风险。

3、遵守法规

通过漏洞扫描和修复,企业可以遵守相关法规法律和行业标准,避免因未能满足合规性要求而受到处罚或罚款。

4、降低风险

企业信息系统中存在漏洞和弱点,容易被黑客利用进行攻击和入侵,通过漏洞扫描和修复,可以降低企业信息系统被攻击的风险。

八、漏洞扫描对于企业的安全策略有什么影响?

1、发现安全漏洞

漏洞扫描可以发现企业信息系统中的安全漏洞,从而提供了修复这些漏洞的机会,帮助企业建立更加完善的安全策略。

2、修复漏洞

漏洞扫描发现的安全漏洞需要被及时修复,以避免黑客利用漏洞攻击企业信息系统。因此,漏洞扫描对于企业的安全策略也提供了修复漏洞的重要机会。

3、安全策略评估

漏洞扫描可以帮助企业评估其安全策略的有效性和完整性。如果漏洞扫描发现的安全漏洞和企业安全策略的要求不符,那么企业就需要重新评估和调整其安全策略。

4、保持安全意识

漏洞扫描可以帮助企业保持对安全的高度警惕和关注,鼓励企业采取更加主动和积极的安全措施。

5、满足合规性要求

许多行业标准和法规法律,都要求企业定期进行漏洞扫描,并及时修复发现的漏洞。通过漏洞扫描,企业可以满足合规性要求,提高其安全性和可信度。

九、漏洞扫描和威胁情报有什么区别?

1、定义不同

漏洞扫描是一种自动化工具,用于检查计算机系统、网络或应用程序中的漏洞和安全弱点。而威胁情报是指从各种渠道收集到的有关已知或潜在安全威胁的信息。

2、目的不同

漏洞扫描的目的是发现系统中存在的漏洞和弱点,以便及时修复,从而提高系统的安全性。而威胁情报的目的是收集并分析与安全相关的信息,以便及时识别和防范潜在的威胁。

3、数据来源不同

漏洞扫描的数据主要来自于扫描工具本身,通过扫描系统或应用程序来发现漏洞。而威胁情报的数据来源非常广泛,包括黑客社区、开放情报、政府情报、恶意软件分析等。

4、处理方式不同

漏洞扫描的处理方式是通过自动化工具检测漏洞和弱点,然后提供建议和指导,供管理员进行修复。而威胁情报的处理方式是通过人工分析和处理,评估威胁的严重性和可能性,并制定相应的应对措施。

十、漏洞扫描和渗透测试有什么区别?

1、目的不同

漏洞扫描的主要目的是发现系统、网络或应用程序中可能存在的漏洞和安全缺陷,以便及时修复这些漏洞和缺陷,提高系统的安全性和可靠性;而渗透测试的主要目的是模拟攻击者的攻击行为,测试系统的安全性和弱点,评估系统的风险和安全性。

2、方法不同

漏洞扫描通常是自动化的测试方法,使用漏洞扫描工具对系统、网络或应用程序进行扫描,以发现可能存在的漏洞和安全缺陷。而渗透测试通常是手动的测试方法,模拟攻击者的攻击行为,对系统、网络或应用程序进行深入测试,发现可能存在的漏洞和安全缺陷,并利用这些漏洞进一步渗透系统。

3、范围不同

漏洞扫描通常只关注系统、网络或应用程序中可能存在的漏洞和安全缺陷,而不考虑系统的整体安全性和风险。而渗透测试通常涵盖更广泛的范围,包括系统的物理安全、网络架构、应用程序的代码安全性、人员的安全意识等方面。

4、结果不同

漏洞扫描的结果通常是漏洞扫描报告,列出系统中存在的漏洞和安全缺陷,并提供修复建议和措施。而渗透测试的结果通常是渗透测试报告,评估系统的安全性和风险,提供改进建议和措施,并可能包括对系统的攻击演示等内容。

十一、如何进行漏洞扫描?

德迅云安全漏洞扫描服务(Vulnerability Scan Service)集Web漏洞扫描、操作系统漏洞扫描、资产内容合规检测、配置基线扫描、弱密码检测五大核心功能,自动发现网站或服务器在网络中的安全风险,为云上业务提供多维度的安全检测服务,满足合规要求,让安全弱点无所遁形。

  • 扫描全面:涵盖多种类型资产扫描,支持云内外网站和主机扫描,支持内网扫描、智能关联各资产之间的联系,自动发现资产指纹信息,避免扫描盲区。
  • 高效精准:采用web2.0智能爬虫技术,内部验证机制不断自测和优化,提高检测准确率,时刻关注业界紧急CVE爆发漏洞情况,自动扫描,最快速了解资产安全风险。
  • 简单易用:配置简单,一键全网扫描。可自定义扫描事件,分类管理资产安全,让运维工作更简单,风险状况更清晰了然。
  • 报告全面:清晰简洁的扫描报告,多角度分析资产安全风险,多元化数据呈现,将安全数据智能分析和整合,使安全现状清晰明了。

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

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

相关文章

【R语言从0到精通】-4-回归建模

通过之前的文章,我们已经基本掌握了R语言的基本使用方法,那从本次教程开始,我们开始聚焦如何使用R语言进行回归建模。 4.1 回归简介 回归分析是一种统计学方法,用于研究两个或多个变量之间的相互关系和依赖程度。它可以帮助我们了…

QT7_视频知识点笔记_2_对话框,布局,按钮,控件(查看帮助文档找功能函数)

第二天: 对话框,布局,按钮 QMainWindow:菜单下拉框添加之后可通过ui->actionXXX(自定义的选项名)访问,用信号triggered发出信号,槽函数可以使用lambda表达式进行 //菜单栏&am…

文字转语音粤语怎么转换?6个软件教你快速进行文字转换语音

文字转语音粤语怎么转换?6个软件教你快速进行文字转换语音 当需要将文字转换为粤语语音时,可以使用多种工具和服务,这些工具可以帮助您快速而准确地实现这一目标。以下是六个非国内的语音转换软件,它们可以帮助您将文字转换为粤语…

web前端学习笔记7-iconfont使用

7. iconfont的使用流程 字体图标使用较多的是阿里巴巴iconfont图标库,它是阿里巴巴体验团队推出的图标库和图标管理平台,提供了大量免费和可定制的矢量图标,以满足网页设计、平面设计、UI设计、应用程序开发和其他创意项目的需求。 官方网站:https://www.iconfont.cn/ 使用…

大数据毕业设计Python+Django旅游景点评论数据采集分析可视化系统 NLP情感分析 LDA主题分析 bayes分类 旅游爬虫 旅游景点评论爬虫 机器学习 深度学习 人工智能 计算机毕业设计

毕业论文(设计)开题报告 学生姓名 学 号 所在学院 信息工程学院 专 业 指导教师姓名 指导教师职称 工程师 助教 指导教师单位 论文(设计)题目 基于朴素贝叶斯算法旅游景点线上评价情感分析 开 题 报 告…

Nginx从入门到精通速成

文章目录 一. **Nginx** **的简介**1.1 什么是 **nginx**1.2 正向代理1.3 反向代理1.4 **负载均衡**1.5 动静分离 二. **Nginx** **的安装**三. **Nginx** **的常用的命令**四. **Nginx** **的配置文件**五. **Nginx** **配置实例**反向代理实例**1**5.1 实现效果5.2 准备工作5…

计算机视觉——OpenCV Otsu阈值法原理及实现

算法简介 Otsu阈值法,也被称为大津算法,是一种在图像处理中广泛使用的自动阈值分割技术。这种方法由日本学者大津展之于1979年提出,旨在根据图像的灰度直方图来自动选择最佳全局阈值。Otsu阈值法的核心思想是最小化类内方差或最大化类间方差…

数据结构 第七章 图(一)

🚀 【考纲要求】图的基本概念 一、图的基本概念 1.1 图的定义 图由顶点和边组成,所以我们在表示一个图的时候,使用 G ( V , E ) G(V,E) G(V,E),来表示一个G图,其中的V表示G图中的顶点,E表示G图中的边&am…

【SAP ME 35】SAP ME DEBUG模式开启

1、Debug基础参数配置 2、NWDS Debug模式开启 3、Debug模式下删除锁(如果以上尝试无效,就执行删除锁) 找到对应的锁任务进行删除! -------------------------------------------------------------- SAP ME涉及问题较多&#…

(MATLAB)安装指南

参考链接:MATLAB2019a安装教程(避坑版)

MySQL 高级 - 第二章 | 数据库目录结构与文件系统

目录 前言一、数据库主要目录结构1.1 数据目录路径1.2 相关命令目录1.3 配置文件路径 二、数据库和文件系统的关系2.1 默认数据库2.2 数据库在文件系统中的表示2.3 数据表在文件系统中的表示2.3.1 InnoDB 存储引擎模式2.3.2 MyISAM 存储引擎模式 2.4 视图在文件系统中的表示2.5…

基于FPGA的多路彩灯控制器VHDL代码Quartus仿真

名称:基于FPGA的多路彩灯控制器VHDL代码Quartus仿真(文末获取) 软件:Quartus 语言:VHDL 代码功能: 多路彩灯控制器 综合训练内容要求 设计一台基于FPGA的多路彩灯控制器的设计。要求如下 1.彩灯从左…

怎样扫描二维码后看图片?图片二维码的制作方式

二维码是一种可以用来存储大量内容,通过扫描二维码的方式来向其他人提供内容,比较常见的展示内容有视频、图片、文件、文本、音频等。那么图片生成二维码的方法是什么样的呢?通过扫码查看图片,可以不下载的图片的同时快速预览内容…

工控人机交互界面编辑软件附描述(电脑软件分享)

HMI 概述:本文为分享型文档 本文摘要 昆仑通泰触摸屏软件分享。   给触摸屏下载程序时使用。   本人用过案例西门子s7-1200/200smart ST30与触摸屏型号“TPC1061Ti”通讯。 文章目录 本文摘要1.MCGS组态环境嵌入式版,大部分人用过此款,容…

JavaScript余数运算符

console.log(5 % 2); //5 2 * 2 1 console.log(8 % 3); //8 2 * 3 2 console.log(6 % 2); //6 2 * 3 0 console.log(7 % 2); //7 2 * 3 1● 我们可以利用这个特性来判断一个数是奇数还是偶数 const isEven n >n % 2 0 ? console.log(${n}是偶数) : console.…

麦肯锡精英高效阅读法笔记

系列文章目录 如何有效阅读一本书笔记 读懂一本书笔记 麦肯锡精英高效阅读法笔记 文章目录 系列文章目录序章 无法读书的5个理由无法读书的理由① 忙于工作,没时间读书无法读书的理由② 不知应该读什么无法读书的理由③ 没读完的书不断增多无法读书的理由④ 工作繁…

在2-3-4树上实现连接与分裂操作的算法与实现

在2-3-4树上实现连接与分裂操作的算法与实现 引言1. 维护2-3-4树结点的高度属性伪代码示例 2. 实现连接操作伪代码示例 3. 证明简单路径p的划分性质4. 实现分裂操作伪代码示例 C代码示例结论 引言 2-3-4树是一种平衡搜索树,它保证了树的高度被有效控制,…

GhostNetV2 Enhance Cheap Operation with Long-Range Attention 论文学习

论文地址:https://arxiv.org/abs/2211.12905 代码地址:https://github.com/huawei-noah/Efficient-AI-Backbones/tree/master/ghostnetv2_pytorch 解决了什么问题? 在计算机视觉领域,深度神经网络在诸多任务上扮演着重要角色。为…

机器学习实践:超市商品购买关联规则分析

第2关:动手实现Apriori算法 任务描述 本关任务:编写 Python 代码实现 Apriori 算法。 相关知识 为了完成本关任务,你需要掌握 Apriori 算法流程。 Apriori 算法流程 Apriori 算法的两个输人参数分别是最小支持度和数据集。该算法首先会生成所…

【最大公约数 并集查找 调和级数】1998. 数组的最大公因数排序

本文涉及知识点 最大公约数 并集查找 调和级数 LeetCode1998. 数组的最大公因数排序 给你一个整数数组 nums ,你可以在 nums 上执行下述操作 任意次 : 如果 gcd(nums[i], nums[j]) > 1 ,交换 nums[i] 和 nums[j] 的位置。其中 gcd(nums…