JAVA代码审计之四⼤框架学习java三⼤框架之间的关系
1.Struts:基于MVC的充当了其中的视图层和控制器;
2.Hibernate:做持久化的,对JDBC轻量级的封装,使得我们能过⾯向对象的操作数据库;
3.Spring:采⽤了控制反转的技术,管理Bean,降低了各层之间的耦合。
4.Shiro:验证权限的框架常和其他框架组合使⽤
⼀.Struts框架
//这个⽂件的核⼼作⽤
//个⼈理解:可以理解为tp框架中的定义路由
//处理⽅法,8种
1.d ate-sources元素
配置应⽤程序所需要的数据源。
<data-source key="a"  type="org.apachedmons.dbcp.BasicDataSource">
..</data-source>
2.f orm-beans元素
配置表单验证的类
3.global-exceptions元素
配置异常处理,excepti理全局的异常配置
4.global-forwards元素
⽤来声明全局的转发关系-->forward标签中的即表⽰转发。
5.action-mappings元素
特定的请求对应的路径转发关系,这⾥的转发是局部的转发。
配置ActionServlet,不是很懂这玩意是完全⼲啥的。
配置本地消息⽂本
8.plugin-in元素
配置strtus的差距元素
⼆.hibernate框架
三.Springboot框架
四.Shiro框架
存在的漏洞
①反序列化漏洞
springboot框架的作用
②shiro权限绕过漏洞-->核⼼是拦截可绕且springboot解析的匹配模式不同
综合分析
jsp的唯⼀不同就是框架
①meta-inf
//相当于⼀个信息包,⽬录中的⽂件和⽬录获得Java 2平台的认可与解释,⽤来配置应⽤程序、扩展程序、类加载器和服务。其中的 manifest.mf⽂件,在⽤jar 打包时⾃动⽣成。对审计⽽⾔没啥意义
②web-inf
java环境的安全⽬录是java配置的核⼼
在web-inf下有个⽂件很重要
//对于代码审计⽽⾔这个⽂件的核⼼是过滤机制
常⽤
<filter-mapping>的<url-pattern>
//如即当是以.action为结尾的请求时都会调⽤这个过滤机制
<filter-mapping>
<filter-name>struts2</filter-name>//这个就是过滤器的名字
<filter-class&a</filter-class>//即对应过滤器的java⽂件
<url-pattern>*.action</url-pattern>
</filter-mapping>
//其余补充
①关闭不安全的http⽅法⽤<security-constraint>进⾏配置
<!--关闭不安全的HTTP⽅法-->
<security-constraint>
<web-resource-collection>
<web-resource-name>任意名称</web-resource-name>
<url-pattern>/*</url-pattern>  #这⾥是配置哪些请求会经过该服务的
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
<http-method>HEAD</http-method>
<http-method>OPTIONS</http-method>
<http-method>TRACE</http-method>
<http-method>PROPFIND</http-method>
<http-method>COPY</http-method>
<http-method>PATCH</http-method>
<http-method>MOVE</http-method>
<http-method>SEARCH</http-method>
<http-method>MKCOL</http-method>
<http-method>LOCK</http-method>
<http-method>UNLOCK</http-method>
<http-method>PROPPATCH</http-method>
</web-resource-collection>
<auth-constraint></auth-constraint>
</security-constraint>(这⾥是添加⽤来注释的*/
②listern请求
Listener可以监听容器中某⼀执⾏动作,并根据其要求做出相应的响应。
常⽤的Web事件的监听接⼝如下:
ServletContextListener:⽤于监听Web的启动及关闭ServletContextAttributeListener:⽤于监听Servl
etContext范围内属性的改变ServletRequestListener:⽤于监听⽤户请求ServletRequestAttributeListener:⽤于监听ServletRequest范围属性的改变HttpSessionListener:⽤于监听⽤户session的开始及结束HttpSessionAttributeListener:⽤于监听HttpSession范围内的属性改变
<listener>
<listener-class>
SingleSignOutHttpSessionListener
</listener-class>
</listener>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。