本发明专利技术涉及一种基于Spring注解的安全开发校验方法,配置扫描包及对应的AOP实现类,当被拦截的接口的类及关联参数为Spring自带的类时则结束,否则获取被拦截的接口的方法对应的参数值,根据参数注解的类型选择对应的检测规则、查找对应的控制类文件,在对外开放接口添加需要校验的注解类,启用Web应用,接口持续校验收到的请求,合法则接受请求,否则拒绝。本发明专利技术利用自定义的注解校验实现对对外提供的接口强制校验,杜绝外部传入恶意不规范的数据引起的安全漏洞相关问题;采用Spring框架下的AOP技术,以多种规则校验算法实现通用接口漏洞防护的方案,针对不同数据进行不同规则的匹配应用,规则编写简易化,通用性强。
A security development verification method based on spring annotation
【技术实现步骤摘要】
一种基于Spring注解的安全开发校验方法
本专利技术涉及错误检测;错误校正;监控的
,特别涉及一种基于Spring注解的安全开发校验方法。
技术介绍
Web应用是互联网应用的重要形式,是金融、运营商、政府部门、教育等社会关键信息系统的门户应用首选。随着各种各样的安全事件以及影响危害巨大的安全漏洞的公布,Web应用的安全不可轻视,人们越来越关注网站应用本身的安全,网站应用安全漏洞检测的需求也日渐上涨。随着Web应用的组件技术和支撑手段不断丰富变化,互联网安全下的Web应用所暴露出的安全层面的问题也是层见迭出。黑客通过对暴露在公网上或者直接可以未授权连接的内网环境下的Web应用或者服务器进行漏洞攻击,可以获得该Web应用的后台管理员权限或者该Web应用所在的服务器系统权限,一方面直接获得该Web应用或者服务器上的敏感文件、敏感数据等信息,另一方面也可以将该服务器做为跳板,对该服务器所在的内网网段进行渗透,可以攻击内网网段中其他的服务器或者其他更多的智能设备,获得大量内网敏感信息,获得服务器权限等。JavaWeb开发从1999年至今已经经历近20年历程,推出了Spring、Struts、Hibernate、Ibatis等基于业务或者数据库的框架,具有很多可以防护JavaWeb应用会遇到的应用层漏洞的模具,如各种硬件或者软件WAF;然而,除了需要消耗一定的成本外,一些容易被绕过的风险还是存在,且这些WAF的防护的结果有可能包含误判或者漏判,一些开发人员自己编写的防护过滤器并不能最大程度的限制安全漏洞的产生,还可能需要人工干预审计代码。另一方面,由于部分开发人员安全意识的薄弱、开发人员的快速流动以及JavaWeb框架自身存在的漏洞,在日常开发软件过程中对用户传入的数据类型、数据长度、数据的字符并未进行合理有效的校验,在接口对外开放的过程中容易被外部攻击者传入恶意的攻击数据(一些特殊字符,超长字符串等等)进行漏洞攻击,经常会由于参数被污染而导致SQL注入、命令注入、文件上传或者业务层面逻辑漏洞等漏洞产生,虽然可以利用注解校验的方式实现对对外提供的接口强制校验、杜绝外部传入恶意不规范的数据引起的安全漏洞相关问题,且通过注解的方式可以轻松的配置所有的检查项,但是仍然无法解决逻辑漏洞产生的安全问题。综上所述,现有技术中,Web安全开发的过程消耗大量人力物力,如果采用硬件WAF则需要采购相应的硬件设备进行支持,且不能防护所有类型的安全漏洞,容易产生误报以及漏洞,无法从根源上解决问题,同时现有的基于Java安全防护的规则编写繁琐,并不能最大程度的限制安全漏洞的产生。
技术实现思路
本专利技术解决了现有技术中,Web安全开发的过程消耗大量人力物力,如果采用硬件WAF则需要采购相应的硬件设备进行支持,且不能防护所有类型的安全漏洞,容易产生误报以及漏洞,无法从根源上解决问题,同时现有的基于Java安全防护的规则编写繁琐,并不能最大程度的限制安全漏洞的产生的问题,提供了一种优化的基于Spring注解的安全开发校验方法。本专利技术所采用的技术方案是,一种基于Spring注解的安全开发校验方法,所述方法包括以下步骤:步骤1:配置用于查找Spring对外开放的接口文档的扫描包;步骤2:配置与所述扫描包对应的AOP实现类,用于拦截所有对外开放接口;步骤3:判断被拦截的接口的类是否为Spring自带的类,如是,则结束,否则,判断被拦截的接口的类的关联参数是否指向Spring自带的类,若关联参数均指向Spring自带的类则结束,否则,进行下一步;步骤4:获取被拦截的接口的方法对应的参数值,根据参数注解的类型选择对应的检测规则,查找对应的控制类文件;步骤5:在每个对外开放接口添加需要校验的注解类;步骤6:启用Web应用;步骤7:任一接口对请求进行校验,若合法,则接受请求,否则拒绝,重复步骤7。优选地,所述步骤2中,所述对外开放接口为添加RequestMapping注解的方法。优选地,所述步骤3中,判断被拦截的接口的类的关联参数是否指向Spring自带的类包括以下步骤:步骤3.1:以JAVA反射的方式,对接口的方法涉及的参数进行获取;步骤3.2:基于获取的参数,获取对应每个参数的类型;步骤3.3:逐个判断每个参数的类型是否为Spring自带的类,若是,则结束,否则,进行步骤4。优选地,所述步骤4中,参数注解的类型包括ID序号属性注解、IP地址属性注解、邮箱属性注解、路径属性注解、域名属性注解、URL属性注解、普通参数属性注解、对象参数注解、文件上传属性注解和不安全参数属性注解。本专利技术提供了一种优化的基于Spring注解的安全开发校验方法,通过配置用于查找Spring对外开放的接口文档的扫描包及与其对应的用于拦截所有对外开放接口的AOP实现类,当被拦截的接口的类及关联参数为Spring自带的类时则结束,否则获取被拦截的接口的方法对应的参数值,根据参数注解的类型选择对应的检测规则、查找对应的控制类文件,在每个对外开放接口添加需要校验的注解类;处理完后启用Web应用,接口持续对收到的请求进行校验,合法则接受请求,否则拒绝。本专利技术解决了JAVA开发人员在日常软件应用开发中不规范的使用传入的数据,从而导致开发过程中产生安全漏洞的问题,利用Spring提供的AOP框架接口来代理所有对外接口的参数调用,利用自定义的注解校验的方式实现对对外提供的接口强制校验,杜绝外部传入恶意不规范的数据引起的安全漏洞相关问题,开发人员只需要在对应的对外接口中添加特定的注解即可完成数据的校验。本专利技术采用Spring框架下的AOP技术,以多种规则的校验算法实现通用接口漏洞防护的方案,针对不同的数据进行不同规则的匹配应用,规则编写简易化,通用性强。附图说明图1为本专利技术的流程图。具体实施方式下面结合实施例对本专利技术做进一步的详细描述,但本专利技术的保护范围并不限于此。本专利技术涉及一种基于Spring注解的安全开发校验方法,所述方法包括以下步骤。步骤1:配置用于查找Spring对外开放的接口文档的扫描包。本专利技术中,扫描包的配置为常规技术,本领域技术人员可以通过XML配置文件或者通过注解的方式进行简单配置。步骤2:配置与所述扫描包对应的AOP实现类,用于拦截所有对外开放接口。所述步骤2中,所述对外开放接口为添加RequestMapping注解的方法。本专利技术中,AOP是Spring框架面向切面的编程思想,AOP是将涉及多业务流程的通用功能抽取并单独封装,形成独立的切面,并在合适的时机将这些切面横向切入到业务流程指定的位置中的技术,AOP实现类是将SpringAOP中提供的AOP技术的接口标准进行自定义的开发实现,根据Spring提供的接口功能开发出自己需要的功能,达到对业务流程的干预。本专利技术中,RequestMapping是Spring框架中一个用来处理请求地址映射的注解本文档来自技高网...
【技术保护点】
1.一种基于Spring注解的安全开发校验方法,其特征在于:所述方法包括以下步骤:/n步骤1:配置用于查找Spring对外开放的接口文档的扫描包;/n步骤2:配置与所述扫描包对应的AOP实现类,用于拦截所有对外开放接口;/n步骤3:判断被拦截的接口的类是否为Spring自带的类,如是,则结束,否则,判断被拦截的接口的类的关联参数是否指向Spring自带的类,若关联参数均指向Spring自带的类则结束,否则,进行下一步;/n步骤4:获取被拦截的接口的方法对应的参数值,根据参数注解的类型选择对应的检测规则,查找对应的控制类文件;/n步骤5:在每个对外开放接口添加需要校验的注解类;/n步骤6:启用Web应用;/n步骤7:任一接口对请求进行校验,若合法,则接受请求,否则拒绝,重复步骤7。/n
【技术特征摘要】
1.一种基于Spring注解的安全开发校验方法,其特征在于:所述方法包括以下步骤:
步骤1:配置用于查找Spring对外开放的接口文档的扫描包;
步骤2:配置与所述扫描包对应的AOP实现类,用于拦截所有对外开放接口;
步骤3:判断被拦截的接口的类是否为Spring自带的类,如是,则结束,否则,判断被拦截的接口的类的关联参数是否指向Spring自带的类,若关联参数均指向Spring自带的类则结束,否则,进行下一步;
步骤4:获取被拦截的接口的方法对应的参数值,根据参数注解的类型选择对应的检测规则,查找对应的控制类文件;
步骤5:在每个对外开放接口添加需要校验的注解类;
步骤6:启用Web应用;
步骤7:任一接口对请求进行校验,若合法,则接受请求,否则拒绝,重复步骤7。
2.根据权利要求1所述的一种基于Spring注解的安全开发校验方法,其...
【专利技术属性】
技术研发人员:郑国祥,范渊,
申请(专利权)人:杭州安恒信息技术股份有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。