【Linux】升级FastJSON版本-jar

摘要

在长期运行的应用服务器上,近期的安全漏洞扫描揭示了fastjson组件存在潜在的安全隐患(FastJSON是一个Java 语言实现的 JSON 解析器和生成器。FastJSON存在远程代码执行漏洞,恶意攻击者可以通过此漏洞远程执行恶意代码来入侵服务器)。为解决这一漏洞,解决方案是对fastjson版本的升级,以增强系统的安全性。为了避免因重新打包整个应用带来的不便与效率损失,我们采取了一种更为灵活的更新策略——直接在生产环境中升级fastjson至最新稳定版本。

FastJson下载

官方链接:https://mvnrepository.com/artifact/com.alibaba/fastjson

按照如下步骤进行下载FastJson的jar包

 下滑找到你要的fastjson包版本,我选择1.2.83。

 跳转到具体1.2.83版本页。

 跳转到GitHub,点击如下图所示:

 点击下载FastJson的jar包

 升级Fastjson

1.找到服务器上正在运行的Java的jar包

# 根据命令能看见正在跑的Java的jar包
ps -ef|grep java
# 根据命令找到Java包的位置
find / -name xx.jar

2.备份jar包

# 切换到jar包目录
cd /xxx/xxx
# 复制一份jar包
cp xx.jar xx.jar_日期.bak

 举例如下:

3.创建临时文件夹,并将jar移入

注:先备份要进行升级fastjson的jar包

mkdir temp
mv xxx.jar temp/
# 切换到临时目录
cd temp/

4.解压jar包

jar xvf xxx.jar
# 一般解压有三个目录:BOOT-INF/ META-INF/ org/

通过jar --help 命令查看 jar 的相关命令

Illegal option: -
Usage: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
Options:-c  create new archive-t  list table of contents for archive-x  extract named (or all) files from archive-u  update existing archive-v  generate verbose output on standard output-f  specify archive file name-m  include manifest information from specified manifest file-n  perform Pack200 normalization after creating a new archive-e  specify application entry point for stand-alone application bundled into an executable jar file-0  store only; use no ZIP compression-P  preserve leading '/' (absolute path) and ".." (parent directory) components from file names-M  do not create a manifest file for the entries-i  generate index information for the specified jar files-C  change to the specified directory and include the following file
If any file is a directory then it is processed recursively.
The manifest file name, the archive file name and the entry point name are
specified in the same order as the 'm', 'f' and 'e' flags.Example 1: to archive two class files into an archive called classes.jar: jar cvf classes.jar Foo.class Bar.class 
Example 2: use an existing manifest file 'mymanifest' and archive all thefiles in the foo/ directory into 'classes.jar': jar cvfm classes.jar mymanifest -C foo/ .

用法:jar {ctxui} [vfmn0PMe] [jar文件] [清单文件] [入口点] [-C目录]文件...
选项:
    -c创建新档案
    -t列出要归档的目录
    -x从存档中提取命名(或所有)文件
    -u更新现有档案
    -v在标准输出上生成详细输出
    -f指定归档文件名
    -m包含来自指定清单文件的清单信息
    -n在创建新存档后执行Pack200规范化
    -e指定独立应用程序的应用程序入口点
        捆绑到可执行的jar文件中
    -0只存储;不使用ZIP压缩 (数字0)
    -P从文件名保留前导的“ /”(绝对路径)和“ ..”(父目录)组件
    -M不为条目创建清单文件
    -i为指定的jar文件生成索引信息
    -C更改为指定目录并包含以下文件
如果任何文件是目录,则将对其进行递归处理。
清单文件名称,归档文件名称和入口点名称为
以与“ m”,“ f”和“ e”标志相同的顺序指定。

5.更新fastjson的jar包

# 切换到BOOT-INF/lib
cd BOOT-INF/lib
# 找到fastjson.jar并替换,可采用文件传输工具或者命令

6.重新打成jar包

#打包时先删除当前目录的xxx.jar包
rm -rf xxx.jar
#将所有文件重新压缩成xxx.jar包
jar -cvfM0 xxx.jar BOOT-INF/ META-INF/ org/
#将重新打包的xxx.jar放回原来目录,并运行新的jar包。

到此,在Linux环境下fastjson升级完成。

参考:jar包的解压和重新打包_jar解压后重新打包-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/42475.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么解析二级域名,一个一级域名可以解析多少二级域名?

在构建网站或应用时,域名是连接用户与服务器的重要桥梁。注册了一级域名后,如何解析二级域名,以及一个一级域名可以解析多少个二级域名,是很多网站管理人员都非常关心的问题。本文国科云将简单探讨下这两个问题,并给出…

数学,LeetCode 3102. 最小化曼哈顿距离

一、题目 1、题目描述 给你一个下标从 0 开始的数组 points ,它表示二维平面上一些点的整数坐标,其中 points[i] [xi, yi] 。 两点之间的距离定义为它们的 曼哈顿距离 。 请你恰好移除一个点,返回移除后任意两点之间的 最大 距离可能的 最小…

Dynadot 2024年第一季度回顾

关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮…

java进程把服务器CPU打满问题排查

1、top命令定位问题进程 2、查看进程的所有线程信息,记下占用最高的进程 top -Hp 38080553、将第2步得到的线程号转化为十六进制 printf %x\n 38080594、结果里搜索 jstack 3808055|grep -A 10 3a1b3b5、定位问题 根据上步搜索到的结果,可以看到是GC…

【PyQt5】

PyQT5线程基础(1) 分离UI主线程和耗时子线程QThread自定义信号 分离UI主线程和耗时子线程 在应用程序中,主线程负责处理用户的输入事件、更新UI元素和响应系统的回调,而耗时的任务(例如网络请求、数据库访问、图像处理…

关闭这八个电脑设置,保护个人隐私

你知道吗?电脑可能一直在偷窥你的小秘密。朋友们,一定要记得关闭这8个电脑设置哦,这样可以有效地保护我们的个人隐私。 按住键盘Windows键加i键,快速打开Windows设置。然后点击隐私选项。 我们来看基本的常规设置。里面有四个设置…

在表格中选中el-radio后, 怎么获取选中的这一行的所有数据?

演示: 图中, 选中这行数据后, 怎么获取到当前的数据? 代码: <tr v-for"item in gridData"><td><input type"radio" v-model"checkout" change"getDateFn" :data-type"item.articleType" :data-channelNam…

GEE代码实例教程详解:年度和月度土地覆盖变化分析

简介 在本篇博客中&#xff0c;我们将使用Google Earth Engine (GEE) 对土地覆盖变化进行年度和月度的分析。通过Google的Dynamic World数据集&#xff0c;我们可以识别2023年至2024年间土地覆盖的类型和变化。 背景知识 Google Dynamic World数据集 Google/DYNAMICWORLD/V…

百川工作手机实现销售管理微信监控系统

在瞬息万变的商业战场中&#xff0c;每一分效率的提升都是企业制胜的关键。传统销售管理模式已难以满足现代企业对精准、高效、合规的迫切需求。今天&#xff0c;让我们一同探索如何利用工作手机这一创新工具&#xff0c;为您的销售团队装上智能翅膀&#xff0c;开启销售管理的…

基于springboot+vue实现的厨艺交流平台(文末源码+Lw)093

93基于SpringBootVue的实现的厨艺交流平台&#xff08;源码数据库万字Lun文流程图ER图结构图演示视频软件包&#xff09; 系统功能&#xff1a; 这次开发的厨艺交流平台功能有个人中心&#xff0c;食材分类管理&#xff0c;用户管理&#xff0c;菜品分类管理&#xff0c;菜谱信…

解锁敦煌网成功秘籍:批量注册买家号测评的高效策略

敦煌网&#xff08;DHgate&#xff09;作为一个跨境电商平台&#xff0c;搭建境外本土网络环境并实现批量注册买家号下单&#xff0c;需要遵循一系列严谨的步骤和考虑多个关键因素。以下是一个概括性的指南&#xff1a; 一、环境要求 国外服务器&#xff1a;首先&#xff0c;…

HumbleBundle7月虚幻捆绑包30件军事题材美术模型沙漠自然环境大逃杀模块化建筑可定制武器包二战现代坦克飞机道具丧尸士兵角色模型20240705

HumbleBundle7月虚幻捆绑包30件军事题材美术模型沙漠自然环境大逃杀模块化建筑可定制武器包二战现代坦克飞机道具丧尸士兵角色模型202407051607 这次HumbleBundle捆绑包是UE虚幻军事题材的&#xff0c;内容非常多。 有军事基地、赛博朋克街区、灌木丛景观环境等 HB捆绑包虚幻…

7-打包安装程序

接下来假设我们想要将我们的项目分发给其他人&#xff0c;以便他们可以使用它。我们希望在各种平台上提供二进制和源代码发行版。这与我们之前在安装和测试中所做的安装略有不同&#xff0c;在安装中我们安装了从源代码构建的二进制文件。在本例中&#xff0c;我们将构建支持二…

C# 构造函数依赖注入 使用out向外传递参数

天真目前解决方法 天真 using System;namespace forCode20191 {class Program {static void Main(string[] args) {bool flag false;Tmp tt new Tmp(out flag);Console.WriteLine(flag); // 将输出 falsett.Doit();Console.WriteLine(flag); // 将输出 trueConsole.ReadKey(…

“DDoS攻击的最新防御策略:从检测到缓解的全方位方案“

DDoS攻击的最新防御策略 DDoS攻击&#xff08;分布式拒绝服务攻击&#xff09;是网络安全领域的重大威胁&#xff0c;它通过大量的恶意流量淹没目标服务器或网络&#xff0c;导致服务不可用。为了有效防御DDoS攻击&#xff0c;最新的策略强调从检测到缓解的全方位方案。 多层防…

深度学习的数学PDF

链接: https://pan.baidu.com/s/1_jScZ7dcyAWGqbrad6bbCQ?pwd9gj9 提取码: 9gj9 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦

【苍穹外卖】Day2 手把手敲完细节

目录 1. 新增员工 1.1 需求分析和设计 1.2 代码开发 ①定义DTO类&#xff1a;(在sky-pojo里&#xff09; ②EmployeeController中创建新增员工方法save() ③EmployeeService里声明save方法&#xff08;altenter&#xff09; ④EmployeeServiceImpl中实现save方法 ⑤在E…

顶刊文献阅读及代码复现

前提:每个无人机都有 (i)自己的机载计算机,用于执行控制其自身动作所需的计算 (ii)自己的传感器系统,用于测量相对位置和速度, (iii)自己的通信设备,用于与相邻代理进行数据交换。 模型:短期的排斥力、中间范围的速度一致性和长距离的吸引力

通过PLC地址来切换威纶通触摸屏界面

Step 1 元件-PLC控制 Step 2 新增 选择设备 选择切换基本窗口功能 选择触发地址 Step 3 离线仿真测试 在数值框中输入对应的页面号 可以看到页面可以正常切换 分享创作不易&#xff0c;请多多支持&#xff0c;点赞、收藏、关注&#xff01; Ending~

昇思Mindspore25天学习打卡Day20:DCGAN生成漫画头像

昇思Mindspore25天学习打卡Day20&#xff1a;DCGAN生成漫画头像 1 GAN基础原理2 DCGAN原理3 数据准备与处理数据处理 4 构造网络4.1 生成器4.2 判别器 5 模型训练损失函数优化器训练模型 6 结果展示7 训练结束打上标签和时间 在下面的教程中&#xff0c;我们将通过示例代码说明…