【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://xiahunao.cn/news/3226089.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

医疗器械的售后与服务探讨

彩虹医械维修培训 8月长期班报名啦 学技术 考证书 技术支持 大型医疗设备的宕机不仅会造成医疗机构直接的巨额经济损失,宕机期间的损失甚至可以超过维修费用,而且还可能会耽误患者的病情检查,因此对医疗设备的定期保养已经成为各级医院的…

Kafka-02 @KafkaListener学习

一. 引入依赖 SpringBoot 和 Kafka 搭配使用的场景&#xff0c;引入 spring-kafka 即可&#xff1b; <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId><version>2.8.11</version>…

vs2022报找不到.netframework,version=V4.8的引用程序集

最近在win7上面安装vs2022 17.6版本&#xff0c;打开.net项目编译的时候出现了这个提示。 解决方案就是安装.net4.8开发者工具包&#xff0c;不是运行工具包。 安装完成之后在项目的属性中修改&#xff1a; 点击下载&#xff1a;.net4.8开发者工具包

HTML+CSS+JS 实现3D风吹草动效果(B站视频)

效果&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>3D effect&…

CAD应用程序开发工具CST CAD Navigator 1.4.0.1 正式发布—— 带来了 G 代码生成功能

CST CAD Navigator是一款兼容Windows和Linux的CAD应用程序。在其简单的界面下&#xff0c;有一个可以快速查看2D图纸和3D模型的强大核心。软件可以轻松地导入和导出文件&#xff0c;获取尺寸&#xff0c;并创建截面视图。 下载最新版CST CAD Navigatorhttps://www.evget.com/p…

SpringIOC原理

SpringIOC原理 1.概念 Spring通过一个配置文件描述Bean及Bean之间的依赖关系&#xff0c;利用Java语言的反射功能实例化Bean并建立Bean之间的依赖关系。Spring的IOC容器在完成这些底层工作的基础上&#xff0c;还提供了Bean实例缓存、生命周期管理、Bean实例代理、事件发布、…

台灯的种类有哪些?五款护眼台灯测评分析

随着时代的发展&#xff0c;现在市面上出现了更为护眼的选择——LED台灯。然而&#xff0c;面对琳琅满目的产品&#xff0c;挑选一款合适的台灯似乎成了一项挑战。那么&#xff0c;我们应该如何从众多选项中&#xff0c;找到那款既实用又护眼的台灯呢&#xff1f;以下内容将为您…

一个项目学习Vue3---Vue3中自带的事件

1. .stop 阻止事件继续传播&#xff0c;即防止事件冒泡到父元素。 <div click.stop"handleClick">点击我</div> 2. .prevent 阻止事件的默认行为&#xff0c;比如阻止表单提交时的页面刷新。 <form submit.prevent"handleSubmit">阻…

替你测试过了,这些国产大模型都很强,快来试试哪款适合你

替你测试过了&#xff0c;这些国产大模型都很强&#xff0c;快来试试哪款适合你 &#x1f4a1;&#x1f525; 大家好&#xff0c;我是猫头虎&#xff0c;科技自媒体博主。今天我将为大家介绍几款顶尖的国产AI大模型&#xff0c;它们各有所长&#xff0c;看看哪一款更适合你的需…

esp8266+micropython+irsend红外发射调试记录

在网上搜索esp8266micropython的红外发射库&#xff0c;没找到&#xff0c;发现 接收库是有的&#xff0c;可以参考&#xff1a;基于MicroPython的ESP8266连接外设IO&#xff08;二&#xff09;_micropython 红外接收-CSDN博客 可惜没有发射&#xff0c;很不方便。 这里都有介…

Echarts折线图---带颜色过度---的小demo

效果: 代码: <template><div id"lineEchtar"><div id"lineEchtars" style"min-height: 300px; width: 100%"></div></div> </template><script> import * as echarts from "echarts"; //…

PHP充电桩小程序系统源码

绿色出行新伴侣&#xff01;充电桩小程序&#xff0c;让充电不再烦恼✨ &#x1f50b; 开篇&#xff1a;告别电量焦虑&#xff0c;充电桩小程序来救场&#xff01; 在这个电动车日益普及的时代&#xff0c;电量不足成了不少车主的“心头大患”。但别担心&#xff0c;充电桩小…

手机容器化 安装docker

旧手机-基于Termux容器化 1、安装app 在手机上安装Termux或ZeroTermux&#xff08;Termux扩展&#xff09; 1.1 切换源 注&#xff1a;可以将termux进行换源&#xff0c;最好采用国内源&#xff0c;例如&#xff1a;清华源等 更新包列表和升级包&#xff08;可选&#xff0…

智能设备中的语音是如何写入语音芯片的

你是否曾好奇&#xff0c;那些智能设备中发出的清晰而自然的语音&#xff0c;是如何被巧妙地植入到微小的语音芯片中的呢&#xff1f;难道真的是通过我们日常使用的电脑吗&#xff1f;今天&#xff0c;就让我们一起探索将语音写入语音芯片的过程。 1、准备语音文件&#xff1a;…

低代码技术革新:高效构建现代人事管理系统

引言 在快速变化的商业环境中&#xff0c;企业必须不断提升其内部管理效率&#xff0c;以保持竞争力和灵活性。人事管理系统作为企业核心业务系统之一&#xff0c;承担着招聘、培训、绩效管理等重要功能&#xff0c;直接影响着企业的人才管理和运营效率。传统的人事管理系统通常…

GuLi商城-商品服务-API-品牌管理-OSS获取服务端签名

新建第三方服务: 引入common 把common中oss的依赖都拿到第三方服务中来 配置文件: 加上nacos注解:<

品牌策划学习资源全攻略:从入门到精通的推荐清单!

这里再分享一些网站书籍和杂志给大家。 TOPYS创意内容平台&#xff1a; 专注于创意内容分享&#xff0c;涵盖广告、设计、艺术等多个领域&#xff0c;是广告设计人寻找创意灵感的好去处。 Dribbble&#xff1a; 设计师社区&#xff0c;用户可以浏览到全球设计师的优秀作品&…

Centos7 安装Docker步骤及报错信息(不敢说最全,但是很全)

一、操作系统要求&#xff1a; 要安装Docker Engine&#xff0c;您需要CentOS 7及以上的维护版本。存档版本不受支持或测试。必须启用centos临时存储库。默认情况下&#xff0c;此存储库已启用&#xff0c;但如果已禁用&#xff0c;则需要重新启用它。建议使用overlay2存储驱动…

利用远程桌面进行开发,

现在的软硬件开发都涉及庞杂的软硬件环境和多种外设总线部署&#xff0c;这时我们利用远程工具和windows自带的wsl虚拟机环境再配合vscode的remote ssh远程开发模式&#xff0c;可自由的在linux windows android等平台上切换&#xff0c;让开发更顺畅&#xff0c;也可以更好的利…

掌控Camunda:深入了解camunda-engine模块

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 &#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 掌控Camunda&#xff1a;深入了解camunda-engine模块 前言Camunda-engine模块概述简介架构设计设…