Ⅰ 输入参数过滤可以预防以下哪些攻击
输入参数过滤可以预防以下哪些攻击()
A.SQL注入、跨站脚本、缓冲区溢出
B.SQL注入、跨站脚本、DNS毒药
C.SQL注入、跨站请求伪造、网络窃听
D.跨站请求伪造、跨站脚本、DNS毒药
答案:B
Ⅱ 如何使用filter过滤器对入参进行处理(完整版)
前台把参数通过报文或者使用表单、ajax提交到后台,如果我们的请求参数是加密的,那么我们在controller里面的每一个方法里都需要进行解密处理。如果方法太多,那就太麻烦了。
使用过滤器,在一个Filter中将 HttpServletRequest 里的所有参数都取出来分别进行过滤然后再放回到该HttpServletRequest 中行不行呢?
通过测试后发现是不行的,因为HttpServletRequest 只提供了getParameter ,而没有提供setParameter;所以,我们只能自己写一个HttpServletRequest 方法继承HttpServletRequestWrapper,然后覆盖里面的方法,并且增加我们自己的setParameters方法,这样我们就可以为所欲为了,最后再在filter中调用该类的方法对参数进行处理(获取、修改、存储等等)。
在请求参数到达controller之前,在filter里面进行解密;这样,通过简单的过滤器处理,把需要处理的请求都在过滤器里进行解密操作,这样就等于实现了自动化处理。
这里我们针对两种不同的请求方式进行讲解:
第一步:新建一个类别
这个类继承自HttpServletRequestWrapper
通过建立这个类我们就能完成向request对象添加我们处理之后的参数了。
第二步:通过实现filter接口建一个过滤器
第三步:过滤器的配置
方法一、在web.xml文件里面进行简单的配置(一般项目)
把我们的过滤器放在该文件中注册
方法二、springboot项目的配置
新建一个配置类,加上@Configuration注解,在方法头加上@Bean注解
controller 接收参数代码:
请求示例代码:
处理结果:
从结果可以看出,我们成功地通过过滤器对请求的email进行大写转小写处理
第一步:新建一个类别
这个类继承自HttpServletRequestWrapper
通过建立这个类我们就能完成向request对象添加我们处理之后的参数了。
第二步:通过实现filter接口建一个过滤器
第三步:
方法一、在web.xml文件里面进行简单的配置
把我们的过滤器放在该文件中注册
方法二、springboot项目的配置
新建一个配置类,加上@Configuration注解,在方法头加上@Bean注解
controller 接收参数代码:
请求报文示例:
我这里使用的是postman工具进行json参数请求
返回结果:
通过该过滤器,把email转换从小写成功。
通过以上操作,我们就成功的创建了一个过滤器。