fastjson

简单Servlet的get/post请求获取参数

☆樱花仙子☆ 提交于 2020-08-06 13:45:31
一.通过maven创建一个servlet项目 二。将创建好的项目转化为web项目 三,pom文件 <? xml version ="1.0" encoding ="UTF-8" ?> <project xmlns ="http://maven.apache.org/POM/4.0.0" xmlns: xsi ="http://www.w3.org/2001/XMLSchema-instance" xsi :schemaLocation ="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" > <modelVersion> 4.0.0 </modelVersion> <groupId> com.huawei </groupId> <artifactId> servlet_demo </artifactId> <version> 1.0-SNAPSHOT </version> <dependencies> <!-- JUnit配置 --> <dependency> <groupId> junit </groupId> <artifactId> junit </artifactId> <version> 3.8.1 </version> <scope> test </scope>

springboot整合mybatis和rabbitMQ实例

独自空忆成欢 提交于 2020-08-06 08:12:35
springboot整合mybatis和rabbitMQ的一个小例子 消息生产者服务搭建 springboot整合mybatis和rabbitMQ的框架搭建非常简单,分三步,第一步使用idea工具创建一个springboot工程,第二步在application.yml文件中配置相关信息,第三步在springboot启动类上面加注解。 创建工程好之后,将application.properties改为application.yml(个人喜好yml文件,当然喜欢什么用什么),添加如下配置 template:有关 AmqpTemplate 的配置 exchange:缺省的交换机名称,此处配置后,发送消息如果不指定交换机就会使用这个 spring : datasource : #driver - class - name : com . mysql . jdbc . Driver url : jdbc : mysql : / / 127.0 .0 .1 : 3306 / test ? useUnicode = true & characterEncoding = utf8 & serverTimezone = UTC username : root password : 123456 rabbitmq : host : 127.0 .0 .1 username : guest

紫薇星上的SSM——SSM框架的一些补充

ぃ、小莉子 提交于 2020-08-05 18:14:36
既然已经学到了这里,那就顺便补充一些知识点,包括:json、Ajax、拦截器、文件的上传与下载 1.json 进入前后端分离时期,后端程序员就要学会使用JSON,这是前端与后端的连接方式,在前端我们可以简单的将数据变为键值对的字符串形式: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script> var user = { name: "zijun", age: 3, sex: "男" }; var json = JSON.stringify(user); console.log(json); console.log(user); var obj = JSON.parse(json); console.log(obj); </script> </head> <body> </body> </html> 可以看到user对象被变成了一个字符串,而且是以键值对对应的形式显示的,这个情况主要由js自带的JSON方法实现;而同样的JSON字符串也可以被转换为对象,这样在前后端分离的时候,只需要定义好接口,前端程序员通过后端程序员传过来的JSON字符串就可以实现数据的动态导入。 Jackson 对于后端程序员来说,一般都会使用Jackson,首先我们导入依赖:

后端Spring Boot+前端Android交互+MySQL增删查改

时光毁灭记忆、已成空白 提交于 2020-08-05 02:42:03
2020.06.23 更新 1 概述 使用spring boot作为后端框架与Android端配合mysql进行基本的交互,包含了最基本的增删查改功能. 2 开发环境 Win IDEA 2019.2 Tomcat 9.0.27 MySQL 8.0.17 Spring Boot 2.2.1 JDK 8 3 后端 3.1 新建一个Spring Boot项目 参考这里 . 3.2 实体类 新建User类作为实体类: @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; private String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } 用的其实是3.1链接中的代码,里面有详细的解释. 3.3 持久层 新建UserRepository实现增删查改: @Repository public interface

Nacos 1.3.0 来了,基于全新内核构建!

不打扰是莪最后的温柔 提交于 2020-07-29 07:57:02
本文系投稿,作者:廖春涛(春少) https://www.yuque.com/docs/share/17664885-e0d8-40fd-a208-f1b58794d544 经过一年多发展,1.2.0版本已经从安全上解决上生产的最后疑虑,解决用户主要诉求。 经过社区讨论,从1.3.0版本开始修炼内功,聚焦“简单”、“性能”、“高可用”这核心的三个点进一步提升 Nacos 核心竞争力。今天很高兴能代表社区向大家介绍1.3.0的核心特性 内嵌关系型分布式数据库,简化集群部署模式 集群管理下沉统一,提供全新集群管理能力 一致性协议抽象升级,提供更高的性能 安全升级,解决 Fastjson 和越权风险 下面我们逐个介绍一下这些能力 轻量级的内嵌关系型分布式数据库 为什么只是用服务发现模块也要我部署 MySQL ? MySQL 集群搭建的成本有多高?不能把集群部署简单一点,像Consul、Etcd那样子? 这不,为了解决这个问题, Nacos 1.3.0 借鉴了 Etcd 的通过Raft协议将单机KV存储转变为分布式的KV存储的设计思想,基于SOFA-JRaft以及Apache Derby构建了一个轻量级的分布式关系型数据库,同时保留了使用外置数据源的能力,用户可以根据自己的实际业务情况选择其中一种数据存储方案。 从 Nacos 1.3.0版本开始集群部署可以不依赖 MySQL 的这个特性

浅谈下 Fastjson 的 autotype 绕过

大兔子大兔子 提交于 2020-07-29 02:57:45
作者:Kingkk 原文链接: https://www.kingkk.com/2020/06/%E6%B5%85%E8%B0%88%E4%B8%8BFastjson%E7%9A%84autotype%E7%BB%95%E8%BF%87/ 本文为作者投稿,Seebug Paper 期待你的分享,凡经采用即有礼品相送! 投稿邮箱:paper@seebug.org 继去年1.2.47 Fastjson被绕过之后,最近的1.2.68又出现了绕过。 正好前段时间翻了一遍Fastjson的源码,对整体逻辑有了一些了解,就尝试分析下autotype的校验过程,以及这两次绕过的思路。若有错误,还望指出。 autotype的校验 为什么校验一直被绕过 1.2.24之后,fastjson对反序列化的类型进行了校验,主要就体现在 ParserConfig.checkAutoType 函数中 里面会对反序列化的类型进行黑白名单和校验,然后获取对应的Java类。 至于为什么没开启 SupportAutoType 属性依然会存在反序列化的危险呢? 可以看到在解析过程中,只要key值为 @type 时,就会进入 checkAutoType 函数尝试获取类。 而且校验 SupportAutoType 属性的工作却是在 checkAutoType 函数中完成的(跟进之后也可以看到是在函数最末端调校验的值

Maven-dependencyManagement 用法

耗尽温柔 提交于 2020-07-28 19:33:12
DepencyManagement应用场景 当我们的项目模块很多的时候,我们使用Maven管理项目非常方便,帮助我们管理 构建、文档、报告、依赖、scms、发布、分发 的方法。可以方便的 编译代码、进行依赖管理、管理二进制库 等等。 由于我们的模块很多,所以我们又抽象了一层,如下图抽出一个 femicro 来管理子项目的公共的依赖。为了项目的正确运行,必须让所有的子项目使用依赖项的统一版本,必须确保应用的各个项目的依赖项和版本一致,才能保证测试的和发布的是相同的结果。 在我们项目顶层的POM文件中,我们会看到dependencyManagement元素。通过它元素来管理jar包的版本,让子项目中引用一个依赖而不用显示的列出版本号。Maven会沿着父子层次向上走,直到找到一个拥有dependencyManagement元素的项目,然后它就会使用在这个dependencyManagement元素中指定的版本号。 父类POM配置 继承自springboot-parent 本项目中,父类POM中dependencyManagement配置 <!--依赖管理,用于管理spring-cloud的依赖--> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId>

JSON最佳实践

时光怂恿深爱的人放手 提交于 2020-07-28 19:06:38
JSON是一种文本方式展示结构化数据的方式,从产生的时候开始就由于其简单好用、跨平台,特别适合HTTP下数据的传输(例如现在很流行的REST)而被广泛使用。by kimmking@163.com 1、JSON是什么 JSON起源于1999年的 JS语言规范ECMA262的一个子集 (即15.12章节描述了格式与解析),后来2003年作为一个数据格式 ECMA404 (很囧的序号有不有?)发布。 2006年,作为 rfc4627 发布,这时规范增加到18页,去掉没用的部分,十页不到。 JSON的应用很广泛,这里有超过100种语言下的JSON库: json.org 。 更多的可以参考这里, 关于json的一切 。 2、优缺点、标准与schema 2.1 结构与类型 这估计是最简单标准规范之一: 只有两种结构:对象内的键值对集合结构和数组,对象用{}表示、内部是”key”:”value”,数组用[]表示,不同值用逗号分开 基本数值有7个: false / null / true / object / array / number / string 再加上结构可以嵌套,进而可以用来表达复杂的数据 一个简单实例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 { "Image": { "Width": 800, "Height": 600, "Title": "View

SpringBoot 整合 Redis 缓存

不想你离开。 提交于 2020-07-27 12:59:02
1.首先导入使用Maven导入jar包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.62</version> </dependency> 2.在application.properties配置信息 # Redis数据库索引(默认为0) spring.redis.database=0 # Redis服务器地址 spring.redis.host=localhost # Redis服务器连接端口 spring.redis.port=6379 # Redis服务器连接密码(默认为空) spring.redis.password=123456 # 连接池最大连接数(使用负值表示没有限制) spring.redis.pool.max-active=200 # 连接池最大阻塞等待时间(使用负值表示没有限制) spring.redis.pool.max-wait=-1 # 连接池中的最大空闲连接 spring

FastJSON的0day漏洞报告

你。 提交于 2020-05-09 22:14:15
一、问题背景 fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean,由于具有执行效率高的特点,应用范围很广 2019年6月22日,阿里云云盾应急响应中心监测到FastJSON存在0day漏洞,攻击者可以利用该漏洞绕过黑名单策略进行远程代码执行 关于fastjson javaweb框架的0day漏洞情报,由于fastjson在进行实例化对象时没有对输入数据进行严格限制,攻击者只要精心构造json数据,即可造成远程代码执行,截止到发稿日,关于该漏洞的利用方式暂未公开,请相关用户及时进行防护。 2019年6月22日,阿里云云盾应急响应中心监测到FastJSON存在0day漏洞,攻击者可以利用该漏洞绕过黑名单策略进行远程代码执行。 1.1、漏洞名称 FastJSON远程代码执行0day漏洞 1.2、漏洞描述 利用该0day漏洞,恶意攻击者可以构造攻击请求绕过FastJSON的黑名单策略。例如,攻击者通过精心构造的请求,远程让服务端执行指定命令(以下示例中成功运行计算器程序)。 1.3、影响范围 FastJSON 1.2.30及以下版本 FastJSON 1.2.41至1.2.45版本 1.4、官方解决方案 升级至FastJSON最新版本,建议升级至1.2.58版本。