ITPub博客

首页 > IT基础架构 > 网络安全 > CWE-369:Divide By Zero除数有可能为零缺陷是如何产生的?

CWE-369:Divide By Zero除数有可能为零缺陷是如何产生的?

原创 网络安全 作者:zktq2021 时间:2021-08-23 13:15:43 0 删除 编辑

一、除数可能为零缺陷

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

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

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

02 为什么会出现除数可能为零?

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

二、除数为零造成影响及解决方法

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

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

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

出现以上情况,在不确定分母是否为0的情况下,需要先对分母进行判断,以保证不存在除数为零的可能性。

三、除数有可能为零样例展示:

05 除数有可能为零缺陷样例 (Date类中的大部分方法都已经被Calendar类中的方法所取代):

 

用Wukong 悟空静态代码安全检测工具检测上述程序代码,则可以发现代码中存在着“除数有可能为零” 导致的代码缺陷,如下图:


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70000012/viewspace-2788258/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
中科天齐软件源代码安全缺陷检测平台(WuKong)是一款B/S 架构的国产信创静态软件安全测试工具,为客户在软件开发过程中查找、识别、追踪绝大部分主流编码中的技术漏洞与逻辑漏洞,帮助用户提升抵御网络攻击、防止数据泄露等安全问题的能力。

注册时间:2021-05-14

  • 博文量
    533
  • 访问量
    358772