【悟空云课堂】第三十六期:使用过时方法(CWE-477:Use of Obsolete Function)

本文主要是介绍【悟空云课堂】第三十六期:使用过时方法(CWE-477:Use of Obsolete Function),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

什么是使用过时方法缺陷?(CWE-477:Use of Obsolete Function)

代码使用了不推荐使用的或已经过时的方法,这表明该代码没有得到积极地审查或维护。
随着编程语言的发展,由于以下原因,方法有时会过时:

1、语言进步
2、更深入理解如何安全有效地执行操作
3、改变了某些特定操作的规范/惯例
通常,被删除的方法会被更新的对等方法所取代,后者以某种不同的方式执行同一任务。

使用过时方法缺陷构成条件有哪些?

代码使用了不推荐使用的或已经过时的方法。

使用过时方法缺陷会造成哪些后果?

使用过时方法可能导致程序质量下降。

使用过时方法缺陷的防范和修补方法有哪些?

请参阅过时方法的文档,以确定为什么不推荐使用该过时的方法,并了解实现相同功能的替代方法。

使用过时方法缺陷样例(Date类中的大部分方法都已经被Calendar类中的方法所取代):

   public FlushAcknowledgement(StreamInput in) throws IOException {id = in.readString();if (in.getVersion().after(Version.V_5_5_0)) {lastFinalizedBucketEnd = new Date(in.readVLong());}}

Wukong(悟空)软件代码安全检测修复系统检测上述程序代码,则可以发现代码中存在着“使用过时方法” 导致的代码缺陷,如下图(Date类中的大部分方法都已经被Calendar类中的方法所取代)

Wukong(悟空)软件代码安全检测修复系统
使用过时方法缺陷在CWE中被编号为CWE-477:Use of Obsolete Function

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

这篇关于【悟空云课堂】第三十六期:使用过时方法(CWE-477:Use of Obsolete Function)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有

MyBatis ParameterHandler的具体使用

《MyBatisParameterHandler的具体使用》本文主要介绍了MyBatisParameterHandler的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、概述二、源码1 关键属性2.setParameters3.TypeHandler1.TypeHa

Spring 中的切面与事务结合使用完整示例

《Spring中的切面与事务结合使用完整示例》本文给大家介绍Spring中的切面与事务结合使用完整示例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录 一、前置知识:Spring AOP 与 事务的关系 事务本质上就是一个“切面”二、核心组件三、完

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

C#下Newtonsoft.Json的具体使用

《C#下Newtonsoft.Json的具体使用》Newtonsoft.Json是一个非常流行的C#JSON序列化和反序列化库,它可以方便地将C#对象转换为JSON格式,或者将JSON数据解析为C#对... 目录安装 Newtonsoft.json基本用法1. 序列化 C# 对象为 JSON2. 反序列化

RabbitMQ 延时队列插件安装与使用示例详解(基于 Delayed Message Plugin)

《RabbitMQ延时队列插件安装与使用示例详解(基于DelayedMessagePlugin)》本文详解RabbitMQ通过安装rabbitmq_delayed_message_exchan... 目录 一、什么是 RabbitMQ 延时队列? 二、安装前准备✅ RabbitMQ 环境要求 三、安装延时队

504 Gateway Timeout网关超时的根源及完美解决方法

《504GatewayTimeout网关超时的根源及完美解决方法》在日常开发和运维过程中,504GatewayTimeout错误是常见的网络问题之一,尤其是在使用反向代理(如Nginx)或... 目录引言为什么会出现 504 错误?1. 探索 504 Gateway Timeout 错误的根源 1.1 后端