System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于自定义注解的防止xss攻击的方法和系统技术方案_技高网

一种基于自定义注解的防止xss攻击的方法和系统技术方案

技术编号:40170987 阅读:4 留言:0更新日期:2024-01-26 23:41
本发明专利技术涉及web应用技术领域,具体为一种基于自定义注解的防止xss攻击的方法和系统,包括以下步骤:初始化配置,所需配置从配置中心获取;自定义注解支持校验全部接口参数或指定的接口参数;初始化xss标签白名单,所需标签配置从配置中心获取;全局有效配置为true时,全局过滤器生效,配置为false时,自定义注解生效;有益效果为:本发明专利技术提出的基于自定义注解的防止xss攻击的方法和系统,将预防XSS攻击实现代码抽取到单独的jar包中,只需要在服务中引入依赖并配置即可实现预防xss攻击。同时提供全部接口的xss防护和特定接口的xss防护功能,实现简单并且侵入性小,有修改规则的需求时,只需要修改jar包的代码并重新发布即可生效。

【技术实现步骤摘要】

本专利技术涉及web应用,具体为一种基于自定义注解的防止xss攻击的方法和系统


技术介绍

1、xss(cross site scripting),即跨站脚本攻击,是一种常见于web应用中的计算机安全漏洞。恶意攻击者往web页面里嵌入恶意的脚本,当用户浏览此网页时,脚本就会在用户的浏览器上执行,进而达到攻击者的目的,这些恶意脚本代码通常是javascript,但有时也可以包括java、vbscript、activex、flash或者甚至是普通的html。攻击一旦成功,攻击者就有可能获得包括但不限于更高的权限(如可以执行一些需要高权限的操作)、私密网页内容、会话和获取cookie等各种内容。

2、现有技术中,目前常用web后端预防xss攻击的技术一般有黑白名单过滤和特殊字符转义两种。

3、(1)黑白名单过滤是将用户输入的内容进行黑名单或白名单的过滤。是对用户提交内容进行可靠的输入验证。黑名单过滤主要是将高危标签例如<script>、<iframe>等放入黑名单中,用户在提交请求时,获取参数,并判断参数中是否含有黑名单中的高危标签关键字,若还有则对其替换或报错,此种方式实现简单,但是鉴于攻击者攻击方式的多样性,黑名单方式很难配置包含所有攻击标签,因此还是会导致攻击的发生,另外此种方式不够灵活,因此在正式的生产环境不适用;白名单过滤是只允许在白名单中的标签通过,凡是不在白名单中的标签进行替换或报错,但若白名单配置不全,会导致误报,目前一般采用第三方开源xss白名单,实现方式比较简单,针对提交参数是富文本的接口尤其合适。

4、(2)特殊字符转义。是将用户提交的内容进行特殊字符转义,例如将<script>、<iframe>标签转义为&lt;script&gt;、&lt;iframe&gt;。常用的转义方法有htmlencode。此种方式实现较为简单,可以防御大部分的xss攻击,但对需要展示图片、带有样式的字体等需要展示完整html语义的富文本参数时,转义后可能会造成富文本失效。


技术实现思路

1、本专利技术的目的在于提供一种基于自定义注解的防止xss攻击的方法和系统,以解决上述
技术介绍
中提出的问题。

2、为实现上述目的,本专利技术提供如下技术方案:一种基于自定义注解的防止xss攻击的方法,所述方法包括以下步骤:

3、初始化配置,所需配置从配置中心获取;

4、自定义注解支持校验全部接口参数或指定的接口参数;

5、初始化xss标签白名单,所需标签配置从配置中心获取;

6、全局有效配置为true时,全局过滤器生效,配置为false时,自定义注解生效。

7、优选的,初始化配置所需配置包括是否“全局有效”、“xss标签白名单列表”、“拦截的请求方式”,请求方式为http的请求方式。

8、优选的,自定义注解可配置到接口上,配置value为‘all’即校验接口的全部参数;配置value为具体的接口参数名,则会获取httpservletrequest中的请求参数列表,根据配置的参数名,获取相应的参数值并校验。

9、优选的,xss标签白名单包括但不限于“a”、“b”、“br”“div”html标签,包括但不限于“style”、“align”、“width”、“title”标签属性,包括但不限于“ftp”、“http”、“https”协议。

10、优选的,全局过滤器生效时,过滤步骤如下:

11、(1)通过springboot注解@conditionalonproperty判断全局有效配置是否为true控制全局过滤器是否初始化;

12、(2)在接到用户请求后,若请求方法在配置的请求方式中,全局过滤器生效,获取该请求的方法、接口方法名称、出参入参等信息;

13、(3)遍历请求参数列表,判断参数值是否在白名单中,若在则通过,若不在则返回失败或将高危标签过滤。

14、优选的,自定义注解生效时,步骤如下:

15、(1)通过springboot注解@conditionalonproperty判断全局有效配置是否为false来控制aop切面的初始化;

16、(2)在接到用户请求后,若请求方法在配置的请求方式中,且接口方法上配置了自定义注解,则aop切面逻辑生效,获取该请求的方法、接口方法名称、出参入参信息;

17、(3)根据自定义注解的value值判断全部接口参数的校验还是特定参数的校验,若是“all”,则需要校验全部参数值,遍历请求参数列表,判断参数值是否在白名单中,若在则通过,若不在则返回失败或将高危标签过滤;若为特定参数,则通过请求参数列表获取对应的参数值,对参数值进行白名单校验,返回结果。

18、一种基于自定义注解的防止xss攻击的系统,所述系统由自定义jar包、全局过滤器、自定义注解、aop切面、xss标签白名单以及自定义配置组成;

19、自定义jar包方式引入,并通过全局过滤器或自定义注解+aop实现xss攻击的防御。

20、优选的,xss标签白名单包括但不限于使用jsoup、anti-samy第三方开源白名单。

21、与现有技术相比,本专利技术的有益效果是:

22、本专利技术提出的基于自定义注解的防止xss攻击的方法和系统,将预防xss攻击实现代码抽取到单独的jar包中,只需要在服务中引入依赖并配置即可实现预防xss攻击。同时提供全部接口的xss防护和特定接口的xss防护功能,实现简单并且侵入性小,有修改规则的需求时,只需要修改jar包的代码并重新发布即可生效。

本文档来自技高网...

【技术保护点】

1.一种基于自定义注解的防止xss攻击的方法,其特征在于:所述方法包括以下步骤:

2.根据权利要求1所述的一种基于自定义注解的防止xss攻击的方法,其特征在于:初始化配置所需配置包括是否“全局有效”、“XSS标签白名单列表”、“拦截的请求方式”,请求方式为http的请求方式。

3.根据权利要求1所述的一种基于自定义注解的防止xss攻击的方法,其特征在于:自定义注解可配置到接口上,配置value为‘all’即校验接口的全部参数;配置value为具体的接口参数名,则会获取httpServletRequest中的请求参数列表,根据配置的参数名,获取相应的参数值并校验。

4.根据权利要求1所述的一种基于自定义注解的防止xss攻击的方法,其特征在于:xss标签白名单包括但不限于“a”、“b”、“br”“div”html标签,包括但不限于“style”、“align”、“width”、“title”标签属性,包括但不限于“ftp”、“http”、“https”协议。

5.根据权利要求1所述的一种基于自定义注解的防止xss攻击的方法,其特征在于:全局过滤器生效时,过滤步骤如下:

6.根据权利要求1所述的一种基于自定义注解的防止xss攻击的方法,其特征在于:自定义注解生效时,步骤如下:

7.一种根据权利要求1-6任意一项所述的基于自定义注解的防止xss攻击的方法的基于自定义注解的防止xss攻击的系统,其特征在于:所述系统由自定义jar包、全局过滤器、自定义注解、AOP切面、xss标签白名单以及自定义配置组成;

8.根据权利要求7所述的一种基于自定义注解的防止xss攻击的系统,其特征在于:xss标签白名单包括但不限于使用Jsoup、Anti-Samy第三方开源白名单。

...

【技术特征摘要】

1.一种基于自定义注解的防止xss攻击的方法,其特征在于:所述方法包括以下步骤:

2.根据权利要求1所述的一种基于自定义注解的防止xss攻击的方法,其特征在于:初始化配置所需配置包括是否“全局有效”、“xss标签白名单列表”、“拦截的请求方式”,请求方式为http的请求方式。

3.根据权利要求1所述的一种基于自定义注解的防止xss攻击的方法,其特征在于:自定义注解可配置到接口上,配置value为‘all’即校验接口的全部参数;配置value为具体的接口参数名,则会获取httpservletrequest中的请求参数列表,根据配置的参数名,获取相应的参数值并校验。

4.根据权利要求1所述的一种基于自定义注解的防止xss攻击的方法,其特征在于:xss标签白名单包括但不限于“a”、“b”、“br”“div”html标签,包括但不限于“sty...

【专利技术属性】
技术研发人员:陈新义张永皋程永明
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1