spring-framework漏洞
CVE漏洞编号:Data Binding Rules (CVE-2022-22968)、Spring4Shell (CVE-2022-22965) 、Spring Cloud (CVE-2022-22963)、spring expression (CVE-2022-22950)
– CVE-2022-22963
CVSS 分数 (VMware) = 5.4
描述:在 Spring Cloud Function 版本 3.1.6、3.2.2 和更旧的不受支持的版本中,当使用路由功能时,用户可以提供特制的 SpEL 作为可能导致访问本地资源的路由表达式。
缓解:受影响版本的用户应升级到spring cloud function 3.1.7、3.2.3。不需要其他步骤。
适用性:不适用于 Windchill 或 FlexPLM。没有影响。
报告时间:2022-03-29
官网:https://tanzu.vmware.com/security/cve-2022-22963
– CVE-2022-22950
CVSS 分数 (VMware) = 5.4
描述:在 Spri ...
fastjson漏洞-20220523
漏洞简述2022年05月23日,360CERT监测发现阿里巴巴发布了Fastjson的风险通告,漏洞编号暂无 ,漏洞等级:高危,漏洞评分:8.5。
Fastjson由阿里巴巴开发的开源JSON解析库,由JAVA语言编写。Fastjson可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。由于具有执行效率高的特点,应用范围广泛。
对此,360CERT建议广大用户及时将Fastjson升级到最新版本。与此同时,请做好资产自查以及预防工作,以免遭受黑客攻击。
POC代码poc类
12345678910111213141516171819202122package com.example.fastjson.poc.error;import java.io.InputStream;public class Poc20220523 extends Exception { public void setName(String str) { try { I ...
application.properties-springboot的配置文件
springboot读取配置文件(application.properties)的优先级没看过实现读取配置文件的代码,无非就是两种.
1.优先读取内部配置文件加载配置项,然后再读取外部配置文件,如果有相同的配置项则进行覆盖替换.
2.优先读取外部配置文件加载配置项,然后再读取内部配置文件,如果对象配置项已经存在则跳过,不存在则进行加载.
配置优先级1.在jar包的同一目录下建一个config文件夹,然后把application.properties放在这个文件夹内
2.在jar包的同一目录下放入application.properties文件
3.在classpath下建一个config文件夹,然后把配置文件放进去
4.在classpath下将配置文件放进去
项目使用读取对应的配置项,可在成员属性上直接使用@Value注解,即可读取,如下面示例
12@Value("${key}")private String configPropertyValue;
如果需要读取注入进静态属性上,可使用set方法进行配置并且在类上需要使用注解声明此实例(如 ...
junit-单元测试框架
引入单元测试的sdk123456<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>RELEASE</version> <scope>test</scope></dependency>
注解式配置,代码如下1234567891011121314151617181920212223242526272829package com.geping.etl.service;import com.geping.etl.baseeast.service.checkManage.CheckRuleService;import lombok.extern.slf4j.Slf4j;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.fa ...
java基础语法整理
java代码各种结构
静态常量
静态成员属性
静态代码块
成员属性(常量)
构造代码块
构造函数
静态一般方法
一般方法
加载顺序从左往右
1.先静态后非静态
2.先父类后子类
3.属性-》代码块-》构造函数
java的修饰符访问修饰符
public
protected
默认(default)
private
所有类都能访问
同包下的类和子类
同包下的类
自己类本身(自己类下面的内部类)
类访问修饰符:public、默认类非访问修饰符:abstract(抽象)、final(常量)、strictfp(浮点按规定格式(IEEE754)计算)
父子类的继承关系:
访问修饰符没有作用域的对应关系、父类为final则不能被子类继承、父类为abstract则子类可以为abstract或非abstract,如果子类为非abstract则必须实现父类所有abstract的方法。
子类为final或abstract修饰时,不受父类非访问关系符的影响。但一个类不能既是final又是abstract的,语意上相矛盾。
父类为strictfp时,子类不继承父类的st ...
java-数据库常用的连接池
DBCP:github地址:https://github.com/apache/commons-dbcp apachec3p0: github地址:https://github.com/swaldman/c3p0 swaldman(个人)druid:github地址:https://github.com/alibaba/druid/wiki alibaba
1)DBCPDBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池.DBCP可以直接的在应用程序中使用,Tomcat的数据源使用的就是DBCP。2)c3p0c3p0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。3)Druid阿里出品,淘宝和支付宝专用数据库连接池,但它不仅仅是一个数据库连接池,它还包含一个ProxyDriver,一系列内置的JDBC组件库,一个SQL Parser。支持所有JDBC兼容的数据库,包括Oracle、MySql、Der ...
HttpServletRequest代理包装的实现
解决XSS或CRSF等http注入攻击的问题通过自定义请求头的方式,替换攻击头里面输入的特殊字符来解决
包装HttpServletRequest自定义ProxyHttpServletRequest包装HttpServletRequest的请求,需要继HttpServletRequestWrapper类,重写getParameter和getParameterValues方法
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162package com.heagle.web.filter;import org.apache.commons.lang.StringUtils;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRequestWrapper;public class ProxyHttpServl ...
ZipUtil工具包整理
提取文件打成压缩包和将压缩包解压成文件
依赖第三方sdk1234567<!-- ant zip解压--> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> <version>1.9.7</version> </dependency>
解压提取压缩包文件路径处理代码整理1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101 ...
XmlUtil工具包整理
java对象和xml对象相互转换的工具类整理
依赖第三方sdk1234567891011<!--解析xml报文--> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>jaxen</groupId> <artifactId>jaxen</artifactId> <version>1.1-beta-6</version> </dependency>
项目由于原先引入了spring-boot-starter-data-jpa,所以dom4j的jar包原先已经引入了,只要新引入jaxen的jar包即可,如图:
将xml文件对象转换成fastjson对象代码逻辑12345 ...
class文件结构
字节码文件结构,使用idea的插件jclasslib打开,如图:
二进制文本,使用Hex Friend打开,如图:
官网文件结构说明:123456789101112131415161718ClassFile { u4 magic; //魔数 u2 minor_version; //次版本号 u2 major_version; //主版本号 u2 constant_pool_count; //常量池数量 cp_info constant_pool[constant_pool_count-1]; //常量池信息明细 u2 access_flags; ...
