【悟空云课堂】第三十七期:除数有可能为零(CWE-369:DivideBy Zero)

2024-04-04 18:58

本文主要是介绍【悟空云课堂】第三十七期:除数有可能为零(CWE-369:DivideBy Zero),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关注公众号“中科天齐软件安全中心”(id:woocoom),一起涨知识!

该栏目为中科天齐全新规划的悟空云课堂,每周五下午18:00准时上线,旨在科普软件安全相关知识,助力企业有效防范软件安全漏洞,提升网络安全防护能力。

什么是除数有可能为零缺陷?

运算操作时,除法或求余数操作容易受到除数有可能为零的影响。因此,必须在操作之前检查除法运算或求余数运算中的除数不为零。

根据除法的意义,除法是已知两个因数的积与其中一个因数,求另一个因数的运算。利用除法与乘法的互逆关系可知,如果除数为零,则:当被除数不为零,由于“任何数乘零都等于零,而不可能等于不是零的数”,此时除法算式的商不存在——即任何数的零倍都不可能为非零数;当被除数为零,即除法算式零÷零,由于“任何数乘零都等于零”,于是商可以是任何数——即任何数的零倍都等于零。为了避免以上两种情况,数学中规定“零不能做除数”。

除数有可能为零缺陷的构成条件有哪些?

运算中,除法或求余数操作时,除数没有经过测试,有可能为零。

除数有可能为零缺陷会造成哪些后果?

如果不验证除数的输入值不为零,那么这将造成一个试图除以零的异常。如果Java的异常处理没有处理此错误,则可能发生意外的结果,甚至导致崩溃。

除数有可能为零缺陷的防范和修补方法有哪些?

在进行除法或求余数操作前,对除数进行测试,以保证不存在除数为零的可能性。

除数有可能为零缺陷样例(Date类中的大部分方法都已经被Calendar类中的方法所取代):
在这里插入图片描述
用Wukong检测上述程序代码,则可以发现代码中存在着“除数有可能为零” 导致的代码缺陷,如下图:
在这里插入图片描述
除数有可能为零缺陷在CWE中被编号为CWE-369:DivideBy Zero

更多的信息请参考CWE官网:http://cwe.mitre.org/data/definitions/369

了解更多安全资讯 请关注公众号【中科天齐软件安全中心】

这篇关于【悟空云课堂】第三十七期:除数有可能为零(CWE-369:DivideBy Zero)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/876594

相关文章

vue同页面多路由懒加载-及可能存在问题的解决方式

先上图,再解释 图一是多路由页面,图二是路由文件。从图一可以看出每个router-view对应的name都不一样。从图二可以看出层路由对应的组件加载方式要跟图一中的name相对应,并且图二的路由层在跟图一对应的页面中要加上components层,多一个s结尾,里面的的方法名就是图一路由的name值,里面还可以照样用懒加载的方式。 页面上其他的路由在路由文件中也跟图二是一样的写法。 附送可能存在

三十八篇:架构大师之路:探索软件设计的无限可能

架构大师之路:探索软件设计的无限可能 1. 引言:架构的艺术与科学 在软件工程的广阔天地中,系统架构不仅是设计的骨架,更是灵魂所在。它如同建筑师手中的蓝图,决定了系统的结构、性能、可维护性以及未来的扩展性。本节将深入探讨软件架构的定义、其在系统设计中的核心作用,以及不同架构风格对系统特性的影响。 软件架构的定义及其在系统设计中的核心作用 软件架构,简而言之,是指软件系统的基本组织结构,

【b站-湖科大教书匠】2 物理层-计算机网络微课堂

课程地址:【计算机网络微课堂(有字幕无背景音乐版)】 https://www.bilibili.com/video/BV1c4411d7jb/?share_source=copy_web&vd_source=b1cb921b73fe3808550eaf2224d1c155 目录 2 物理层 2.1 物理层的基本概念 2.2 物理层下面的传输媒体 2.2.1 同轴电缆 2.2.2 双绞线

《黑悟空》抢先版

当《西游记》的古老传说与现代潮流碰撞,一个全新的西游世界在《黑神话悟空》中缓缓展开。你,作为被选中的“天命人”,将踏上一段寻找真相的奇幻旅程。在这里,中国神话的深邃与东方魔幻的绚丽交织,构建出一个令人叹为观止的世界。     想象一下,你穿梭在吉吉国王的宫殿,与奎托斯并肩作战,或是在GGBond的庇护下探索未知。每一次互动,都是对经典角色的全新诠释,每一次挑战,都是对自我勇气的考

极客新闻——14、陈春花:关于管理,你可能一只有3个误解

本文笔记全部来自《极客新闻》——新鲜的技术资讯、权威的趋势剖析、别样的技术洞察 很多管理者认为,下属绩效低是由于其能力不行。其实,下属的绩效是由管理者决定的。陈春花认为,一个好的管理者,必须对管理有正确的认知,才能形成有效的管理行为,让下属拥有绩效,并获得成长。 在很多公司中,有60%的员工的工作都不没有正常产生绩效。尽量管理者做出了很多努力,也学习过不少管理知识,但是总是看不到立项的效果

基于uni-app和图鸟UI的云课堂小程序开发实践

摘要: 随着移动互联网的快速发展,移动学习已成为教育领域的重要趋势。本文介绍了基于uni-app和图鸟UI框架开发的云课堂小程序,该小程序实现了移动教学、移动学习、移动阅读和移动社交的完美结合,为用户提供了一个便捷、高效的学习与交流平台。本文将从技术选型、功能实现、界面设计等方面对该小程序进行详细介绍,并探讨其在实际应用中的优势与前景。 一、引言 在信息化时代,移动学习因其便捷性、灵活

关于OneDrive一直显示“正在登陆”的一种可能解决方法

最近为新买的笔记本电脑重装了正版win10系统,但是发现OneDrive时不时登不上去,总是显示一直在登陆,网上修改hosts文件的方式也试过了,还是不能很快的登陆上去;而另一个笔记本电脑就可以很正常的登陆,很迷。 这个解决方法可能和“微软商店无法加载”是一样的: 如果“使用TLS1.2” 已经勾选,那就点击该页面的“重置”,然后重启 亲试,操作之后,微软商店打开了,OneDrive

.对于一个栈,给出输入项 A,B,C,D,如果输入项序列为 A,B,C,D,试给出全部可能的输出序列

要找到栈的所有可能输出序列,我们需要考虑栈的特性,即“后进先出”(LIFO)。我们可以通过不同的入栈和出栈顺序来生成所有可能的输出序列。 假设输入项序列是 A, B, C, D。我们通过模拟入栈和出栈过程,递归地生成所有可能的输出序列。 下面是一个详细的递归算法,用于生成所有可能的输出序列: 定义递归函数:该函数处理当前栈状态、剩余未处理的输入项以及已生成的输出序列。递归终止条件:当所有输入

springboot学习-图灵课堂-最详细学习

springboot-repeat springBoot学习代码说明为什么java -jar springJar包后项目就可以启动 配置文件介绍 springBoot学习 依赖引入 <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.tar

Go微服务: redis分布式锁在集群中可能遇到的问题及其解决方案

概述 我们的 redis 一般都是集群来给我们程序提供服务的,单体的redis现在也不多见 看到上面是主节点redis和下面是6个重节点redis,主节点和重节点的通讯都是畅通没问题的这个时候,我们有 gorouting 写我们的数据,那它就会用到我们的setNX写完数据内部是自动同步的,就是你的这个数据通过主节点同步到这些从节点了下面又有我们的 gorouting 去读我们的从节点