[发明专利]一种基于反馈机制的API误用检测与修正方法在审
申请号: | 202310349086.8 | 申请日: | 2023-04-04 |
公开(公告)号: | CN116483700A | 公开(公告)日: | 2023-07-25 |
发明(设计)人: | 张静宣;李灿;李朱杭;孙天悦;唐艺璇 | 申请(专利权)人: | 南京航空航天大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/30;G06F8/41 |
代理公司: | 南京瑞弘专利商标事务所(普通合伙) 32249 | 代理人: | 许海洲 |
地址: | 210016 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 反馈 机制 api 误用 检测 修正 方法 | ||
本发明提供一种基于反馈机制的API误用检测与修正方法,包括以下步骤:1)收集应用程序编程接口API正确使用数据集和API误用数据集,并获取源代码集合;2)在获取到API正确使用和误用的源代码之后,从中挖掘出API正确使用模式与API误用模式,从而对API的使用情况进行泛化;3)给出待检测代码,将其转换为待检测API使用图AUG,并利用图距离算法完成是否发生API误用的检测;4)在检测出API误用后,对于误用API提出修改意见,从而便于用户进行修正。此方法利用了API项目集和API误用代码集两种相反数据集,从两个相反方面对待检测代码进行API误用检测。本发明详细介绍了不同反馈信息的用法,利用用户交互进一步提高了API误用检测与API误用修正的准确度。
技术领域
本发明属于软件工程技术领域,具体涉及一种基于反馈机制的API误用检测与修正方法。
背景技术
在现代软件开发过程中,开发人员往往依赖于提供可重用功能的第三方库,而第三方库通过应用程序编程接口(Application Programming Interface,API)进行访问。API为软件开发人员提供了与软件开发工具包、库、操作系统、框架和云服务交互的手段。利用API,软件开发人员可以通过调用对应的API实现具体方法并且直接完成相应功能,而不需要访问源码,也不需要了解被调用API的内部工作机制细节。因此,通过使用API,软件开发人员可以简化他们的工作,提高工作效率和代码质量,并且依靠现有的软件减少重新发明已经存在的功能所需要的开销,降低了软件开发过程的开发成本。
在软件开发人员调用API时,需要遵循其中的约束条件和使用注意事项,例如,在使用文件读写流读写文件时,要进行异常处理。然而,由于API本身使用的复杂性、使用约束通常是隐含的假设、API文档信息不够完善或者含有二义性、更新维护不及时等原因,开发人员在学习使用API的过程中面临着严峻的挑战,在软件开发过程中经常存在API误用问题。此外,由于软件开发人员与他们使用的API的内部工作脱钩或API使用者本身的疏漏等原因,也常常会产生API误用。
API误用是指违反了API的正确使用约束,例如错误的方法调用、缺失条件检查、缺失异常处理等。API误用在实际项目中会导致功能性错误、性能问题、安全漏洞等代码缺陷,是降低软件性能或导致软件错误、崩溃和漏洞的常见原因,给软件开发带来了巨大的安全隐患。并且由于众多开发人员安全意识的参差不齐,以及缺少高质量API文档的限制,API误用导致的软件问题长期存在,严重危害着软件的安全。因此,检测API是否被误用是软件开发中的一项重要任务,并且在理想情况下,对于检测出的API误用,开发环境应该能够对其提出准确的修正建议。
为了减少API误用,目前已经提出了许多API误用检测方法,基本可以分为以下两类:
第一类是根据API文档进行推断,使用自然语言处理技术分析API文档,并采用启发式语言模式推断特定类型的API约束,提取API的使用规约检测API误用。例如,Ren等人提出了一种使用细粒度的API约束知识图谱来检测API的使用是否违反了已知的使用约束,如调用顺序、前置条件等,进而进行API误用检测的方法。该方法开发了一个开放的信息提取方法,爬取在线的API文档获得API调用约束,然后将其转换为声明图并与源代码进行比较,以检测违反API调用约束的情况。由于受到API文档的限制,即在很多库中,开发人员不愿意或不具备相关的能力编写高质量的文档,因此,很多API约束无法从它们的文档中正确推断出来。并且,由于从API文档中提取约束不能很好地结合实际软件开发过程,导致其API误用检测准确率有待提升。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京航空航天大学,未经南京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310349086.8/2.html,转载请声明来源钻瓜专利网。