Java序列化与JNDI注入

2023-10-30

现阶段公司会进行季度的安全巡检,扫描出来的 Java 相关漏洞,无论是远程代码执行、还是 JNDI 注入,基本都和 Java 的序列化机制有关。本文简单梳理了一下序列化机制相关知识,解释为什么这么多漏洞都和 Java 的序列化有关,以及后续怎么避免这些安全漏洞,减少版本升级工作量。同时能基于本文的知识,在看到序列化漏洞后,简单评估该漏洞对自身应用的影响。

一、序列化概述

序列化主要是提供了一种机制,方便数据在网络之间进行传输,或者独立于程序存储在本地磁盘。

序列化的使用场景很广,比如服务器收到请求参数,一种处理方式是一个个解析数据,自己构建处理数据。还有一种就是直接将数据反序列化为对象。当要把对象存储到缓存时,我们可以自己解析对象生成数据保存到缓存,取出时也自己处理数据转换为对象,也可以直接借助语言的序列化机制帮我们将对象序列化为数据存储起来,从缓存里获取数据后直接反序列化转为对象。在这些场景里,很明显序列化机制能极大改善我们的编程体验。

Java 序列化基础

最简单模式:

implements Serializable

我们可以只实现序列化接口,让Java 序列化机制会帮我们处理其他的一切事情。

基于Serializable接口简单定制

一个对象想要被序列化,那么它的类就要实现此接口或者它的子接口。

这个对象的所有属性(包括private属性、包括其引用的对象)都可以被序列化和反序列化来保存、传递。不想序列化的字段可以使用transient修饰。

可以用transient指定不想序列化的数据,比如密码等敏感数据。

由于Seriali

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java序列化与JNDI注入 的相关文章

随机推荐

  • 输入英文有空格 解决方法

    shift 空格 直接搞定
  • Uniform convergence

    In the mathematical field of analysis uniform convergence is a mode of convergence of functions stronger than pointwise
  • vue3 + elementplus 教程

    一 初始化 安装 vue cli g 全局安装 vue cli npm install vue cli g 或者 yarn global add vue cli 二 创建项目 vue create 项目名 进行项目初始化 D workspa
  • C# JSON 常用方法 - Json字符串转对象

    创建项目 ConsoleApplication Json 选择项目右键管理NuGet程序包 搜索Newtonsoft Json 并下载安装 选择项目添加 JsonHelper cs 添加引用 using Newtonsoft Json 编写
  • [893]推荐几款提高体验与效率的Chrome插件神器

    今天推荐几款好用的 Chrome 插件 都是我自己一直在用的插件 可以到 Chrome 商店下载 话不多说 进入主题 Insight io For Github 如图 就像这样 可以以文件树的方式浏览 github 的代码文件 Toggle
  • 【注册机】JCreator Pro v4.50.010 注册机

    下载地址 http oyksoft oyksoft com oyksoft com JCreator Pro v4 50 010 Keygen Only HAZE rar
  • OpenCV均值、中值滤波器的讲解及实战应用(附Python源码)

    需要源码和图片请点赞关注收藏后评论区留言私信 在尽量保留原图像信息的情况下 去除图像内噪声 降低细节层次信息等一系列过程 叫作图像的平滑处理 或图像的模糊处理 实现平滑处理最常用的工具就是滤波器 通过调节滤波器的参数 可以控制图像的平滑程度
  • Java通过两点经纬度和范围距离计算范围四个顶点的经纬度

    参考博文 https blog csdn net zengmingen article details 68490497 private static final double mile 1609 344 米 英里换算 通过起点 终点的经纬
  • SQL数据库:数据查询

    数据查询 语句格式 SELECT子句 指定要显示的属性列 FROM子句 指定查询对象 基本表或视图 WHERE子句 指定查询条件 GROUP BY子句 对查询结果按指定序列的值分组 比如说男的一组 女的一组 该属性列值相等的元祖为一个组 通
  • python读入2个正整数a和b_C/C++知识点之C语言解题:读入两个小于100的正整数A和B,计算A+B...

    本文主要向大家介绍了C C 知识点之C语言解题 读入两个小于100的正整数A和B 计算A B 通过具体的内容向大家展示 希望对大家学习C C 知识点有所帮助 题目描述 读入两个小于100的正整数A和B 计算A B 需要注意的是 A和B的每一
  • STC15单片机实战项目 - 项目需求

    以经典的51内核单片机设计一款产品 功能如下 1 采用宏晶的STC15L2K32S2 LQFP32 2k SRAM 32k ROM 目的 选用STC15系列1T的经典51内核单片机 资源丰富 2 设计1个运行指示灯 工作时 间隔1s闪烁 目
  • 人工智能及其在工业领域的三大应用

    人工智能是一门新的技术学科 研究和开发用于模拟人类智慧扩充套件和扩充套件的理论 方法 技术和应用系统 人工智能研究的目标 是让机器执行一些需要智慧人类完成的复杂任务 也就是说 我们希望这台机器能取代我们 解决一些复杂的任务 不仅是重复的机械
  • 数据库系统概论——第九章 关系查询处理和查询优化

    一 关系数据库系统查询处理 1 查询处理步骤 1 查询分析的任务 对查询语句进行扫描 词法分析和语法分析 词法分析 从查询语句中识别出正确的语言符号 语法分析 进行语法检查 2 查询检查的任务 1 合法权检查 根据数据字典检查语句中的数据库
  • 【linux】cpu过高解决方法

    CPU过高情况 1 使用top命令查看cpu的进程占用情况 2 发现11443的进程占比过高 通过top Hp 11443 查看线程的占用情况 发现11459 11460 11461线程的占比过高 解决swap占用CPU 设置vm swap
  • # Linux 升级g++7.5.0

    Linux 升级g 7 5 0 最近使用需要使用c 14标准 发现自己的编译器版本为gcc 4 8 只支持c 11标准 因此进行升级 升级为可以支持c 17的gcc7 5 0 关于编译器的版本支持问题可以到gcc的官方文档进行查询 下面开始
  • 【机器学习杂烩】投票(Voting)算法在分类问题上的应用(一口气实现Logistic 回归、SVM、KNN、C4.5 决策树、 Adaboost、GBDT 和随机森林,并集成起来)

    投票算法简介 投票是在分类算法中广泛运用的集成学习算法之一 投票主要有硬投票和软投票 两种 硬投票即各基分类器权重相同的投票 其原理为多数投票原则 如果基分类器 的某一分类结果超过半数 则集成算法选择该结果 若无半数结果则无输出 软投票 的
  • (一)Windows下tensorflow安装 win64+Python3.5

    2016年11月29日 TF官方宣布0 12版tensorflow支持原生windows操作系统 不在需要通过Docker进行安装 tf初学者 windows重度依赖用户 可以按照下面这种可行的安装方法进行 一 安装Python 1 通过P
  • JavaWeb远程调试

    目录 远程调试 Centos JDK 工程 启动配置 IDE连接 调试 停止调试 远程调试原理 原理 三种通信方式 Debug参数 第1种Socket Attach调试方法 第2种Socket Listen调试方法 第3种调试方法 断点分类
  • Go_实现HTTP请求和响应

    请求 HTTP 超文本传输协议 请求报文由请求行 请求头部 空行 请求包体4个部分组成 如下图所示 请求行 请求行由请求方法 URL HTTP协议版本组成 它们之间使用空格隔开 常用的HTTP请求方法有GET POST请求 GET GET请
  • Java序列化与JNDI注入

    现阶段公司会进行季度的安全巡检 扫描出来的 Java 相关漏洞 无论是远程代码执行 还是 JNDI 注入 基本都和 Java 的序列化机制有关 本文简单梳理了一下序列化机制相关知识 解释为什么这么多漏洞都和 Java 的序列化有关 以及后续