研二下学期,勉强学了SpringMVC,刷了200道题目,原本没上心的面试拿到了offer,薪资20k,很是纠结要不要继续准备秋招。
上面应该是位研发的小伙伴发的帖子,这不禁让我想起这几年网络安全的招聘要求,除了你要会渗透这种常规的技术要求,更多的你还得懂代码审计。
SpringMVC框架常见面试问题
1、SpringMVC拦截器主要作用是什么?
SpringMVC拦截器(Interceptor)是用于拦截和处理HTTP请求的组件,类似于Servlet中的过滤器(Filter)。拦截器可以在请求到达控制器之前或之后执行特定的操作,从而实现如日志记录、权限验证、请求参数处理等功能。
- 日志记录:记录请求的详细信息,如请求URL、请求参数、处理时间等。
- 权限验证:在请求到达控制器之前验证用户的权限,如果没有权限则中止请求。
- 请求参数处理:在请求处理之前对请求参数进行预处理,如参数格式化、参数校验等。
- 性能监控:统计请求的处理时间,监控系统性能。
2、SpringMVC拦截器分为哪些情况?
1、拦截器链
Spring MVC允许配置多个拦截器,并将它们按顺序组成拦截器链。拦截器链中的每个拦截器都会按顺序执行。示例代码如下:
2、条件拦截器
可以通过配置拦截器的路径模式来实现条件拦截。例如,只拦截特定路径的请求。
3、SpringMVC命令执行漏洞了解么(CVE-2022-22965)?
主要是:该漏洞主要影响使用JDK9及以上版本的Spring MVC框架,并且当Spring框架以及衍生的框架中存在spring-beans-*.jar文件或者CachedIntrospectionResults.class时,漏洞会被触发 。攻击者可以通过框架的参数绑定功能获取AccessLogValve对象并设置恶意字段值,从而触发pipeline机制并写入任意路径下的文件 。
修复方案:
1、WAF中实现对 class.*, Class.*, *.class.*, *.Class.* 字符串的规则过滤。
2、升级Spring框架到5.2.20版本或更高。
推荐阅读: