JAVA代码审计之四大框架学习

java三大框架之间的关系

1.Struts:基于MVC的充当了其中的视图层和控制器;

2.Hibernate:做持久化的,对JDBC轻量级的封装,使得我们能过面向对象的操作数据库;

3.Spring: 采用了控制反转的技术,管理Bean,降低了各层之间的耦合。

4.Shiro:  验证权限的框架 常和其他框架组合使用

一.Struts框架

struts.xml

//这个文件的核心作用
//个人理解:可以理解为tp框架中的定义路由

//处理方法,8种
1.date-sources元素
配置应用程序所需要的数据源。
<data-source key="a"  type="org.apached.commons.dbcp.BasicDataSource">
..</data-source>

2.form-beans元素
配置表单验证的类

3.global-exceptions元素
配置异常处理,exceptions处理全局的异常配置

4.global-forwards元素
用来声明全局的转发关系-->forward标签中的即表示转发。

5.action-mappings元素
特定的请求对应的路径转发关系,这里的转发是局部的转发。

6.controller元素
配置ActionServlet,不是很懂这玩意是完全干啥的。


7.message-resources元素
配置本地消息文本

8.plugin-in元素
配置strtus的差距元素

struts-config.xml配置文件

二.hibernate框架

三.Springboot框架

四.Shiro框架

存在的漏洞
①反序列化漏洞
②shiro权限绕过漏洞-->核心是拦截可绕且springboot解析的匹配模式不同

shiro权限绕过漏洞

综合分析

jsp的唯一不同就是框架

①meta-inf 
//相当于一个信息包,目录中的文件和目录获得Java 2平台的认可与解释,用来配置应用程序、扩展程序、类加载器和服务。其中的 manifest.mf文件,在用jar打包时自动生成。对审计而言没啥意义
②web-inf
java环境的安全目录 是java配置的核心

在这里插入图片描述

在这里插入图片描述
在web-inf下有个文件很重要
在这里插入图片描述

web.xml

//对于代码审计而言这个文件的核心是过滤机制
常用
<filter-mapping><url-pattern>
//如 即当是以.action为结尾的请求时 都会调用这个过滤机制
<filter-mapping>
<filter-name>struts2</filter-name>//这个就是过滤器的名字
<filter-class>dckj.c.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:用于监听ServletContext范围内属性的改变
ServletRequestListener:用于监听用户请求
ServletRequestAttributeListener:用于监听ServletRequest范围属性的改变
HttpSessionListener:用于监听用户session的开始及结束
HttpSessionAttributeListener:用于监听HttpSession范围内的属性改变

			<listener>
			<listener-class>
				com.tp.cas.client.logout.SingleSignOutHttpSessionListener
			</listener-class>
		</listener> 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

goddemon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值