ITPub博客

首页 > IT基础架构 > 网络安全 > Switch中省略了break语句导致的代码缺陷

Switch中省略了break语句导致的代码缺陷

原创 网络安全 作者:zktq2021 时间:2021-09-27 14:34:40 0 删除 编辑

本期主题为Switch中省略了break语句导致的代码缺陷的相关介绍。

01什么是Switch中省略了break语句导致的代码缺陷?

break语句通常用在循环语句和switch语句中。当break用于switch语句中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则会从满足条件的地方(即与switch(表达式)括号中表达式匹配的case)开始执行,直到switch结构结束。

如果程序在switch或类似构造中省略了break语句,则会导致多个条件相关联的代码被执行。当程序员只打算执行与一个条件相关的代码时,这可能会引起问题,可能导致关键代码在不该执行的情况下执行。

02Switch中省略了break语句导致的代码缺陷构成条件有哪些?

1、switch语句的catch块中没有break指令。

03Switch中省略了break语句导致的代码缺陷会造成哪些后果?

关键字:改变执行逻辑

可能导致执行意外的辑和其他意外的应用程序行为。

04Switch中省略了break语句导致的缺陷防范和修补方法有哪些?

1、省略一个break语句会导致用户无法区分是忘记编写break语句还是开发人员故意为之。如果确认是故意使两种情况以上使用同一种处理逻辑,确保逻辑正确。

2、使用if语句替代该功能,这更安全。

05Switch中缺少default导致的漏洞样例:

用悟空检测上述程序代码,可以发现代码中存在着switch中省略了break语句的缺陷,如下图:

switch中省略了break语句在CWE中被编号为CWE-484: Omitted Break Statement in Switch


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

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

注册时间:2021-05-14

  • 博文量
    533
  • 访问量
    358688