当前位置: 首页 > news >正文

做网站必须要公司才能做吗app拉新平台有哪些

做网站必须要公司才能做吗,app拉新平台有哪些,开发文档,ds216j做网站1. 温少和他的fastjson 阿里巴巴的 FastJSON,也被称为 Alibaba FastJSON 或阿里巴巴 JSON,是一个高性能的 Java JSON 处理库,用于在 Java 应用程序中解析和生成 JSON 数据。FastJSON 以其卓越的性能和功能丰富的特点而闻名,并在…

1.  温少和他的fastjson

阿里巴巴的 FastJSON,也被称为 Alibaba FastJSON 或阿里巴巴 JSON,是一个高性能的 Java JSON 处理库,用于在 Java 应用程序中解析和生成 JSON 数据。FastJSON 以其卓越的性能和功能丰富的特点而闻名,并在阿里巴巴的开源项目和其他许多 Java 应用程序中广泛使用。

fastjson的特点和常用方法如下:

Java工具库——FastJson的40个常用方法-CSDN博客

因为fastjson自己定义了序列化工具类,并且使用asm技术避免反射、使用缓存、并且做了很多算法优化等方式,大大提升了序列化及反序列化的效率。

虽然fastjson是阿里巴巴开源出来的,但是从论坛了解到这个项目大部分时间都是其作者温少一个人在靠业余时间维护的。

知乎上有网友说:“温少几乎凭一己之力撑起了一个被广泛使用JSON库,而其他库几乎都是靠一整个团队,就凭这一点,温少作为“初心不改的阿里初代开源人”,当之无愧。”

fastjson目前是国产类库中比较出名的一个,可以说是倍受关注,所以渐渐成了安全研究的重点,所以会有一些深度的漏洞被发现。就像温少自己说的那样:

“和发现漏洞相比,更糟糕的是有漏洞不知道被人利用。及时发现漏洞并升级版本修复是安全能力的一个体现。”

2. FASTJSON Autotype机制

FASTJSON支持AutoType功能,这个功能会在序列化的JSON字符串中带上类型信息,在反序列化时,不需要传入类型,实现自动类型识别。

2.1 Autotype机制存在的历史

AutoType 机制是 FASTJSON 提供的一项特性,目的是简化 JSON 的序列化和反序列化过程。在普通的反序列化操作中,JSON 字符串需要传递具体的类型信息,而 AutoType 机制则允许在 JSON 数据中直接包含类型信息,从而在反序列化时自动识别类型。这种机制最早出现在 FASTJSON 的初期版本中,主要出于以下几个原因:

  1. 简化开发:AutoType 机制可以简化 JSON 数据在 Java 对象之间的转换过程,减少代码量,提高开发效率。
  2. 增强灵活性:通过在 JSON 数据中嵌入类型信息,可以方便地处理复杂对象和多态对象,特别是在实现继承和接口时。
  3. 广泛适用性:在很多应用场景下,特别是 RPC 调用和数据交换过程中,AutoType 机制可以极大地方便数据传输和解析。

然而,随着该机制的广泛使用,一些潜在的问题也逐渐暴露出来,特别是安全性方面。由于 AutoType 机制允许在 JSON 字符串中嵌入类型信息,攻击者可能利用这一点,注入恶意的类,从而导致反序列化漏洞。为了应对这一问题,FASTJSON 在后续版本中对 Autotype 机制进行了多次改进和优化。

2.2 FASTJSON 2 Autotype机制


2.2.1 序列化时带上类型信息


如果需要序列化时带上类型信息,需要使用JSONWriter.Feature.WriteClassName。比如:

Bean bean = ...;
String jsonString = JSON.toJSONString(bean, JSONWriter.Feature.WriteClassName);

很多时候,root对象是可以知道类型的,里面的对象字段是基类或者不确定类型,这个时候不输出root对象的类型信息,可以减少序列化结果的大小,也能提升反序列化的性能。

Bean bean = ...;
String jsonString = JSON.toJSONString(bean, JSONWriter.Feature.WriteClassName, JSONWriter.Feature.NotWriteRootClassName);


2.2.2 反序列化时打开AutoType功能以支持自动类型

Bean bean = (Bean) JSON.parseObject(jsonString, Object.class, JSONReader.Feature.SupportAutoType);

2.2.3 配置safeMode

配置SafeMode会完全禁用AutoType功能,如果程序中显式指定类型,AutoType功能也不会生效。

 JVM启动参数配置:

-Dfastjson2.parser.safeMode=true

2.2.4 使用AutoTypeFilter在不打开AutoTypeSupport时实现自动类型

当打开AutoTypeSupport,虽然内置了一个比较广泛的黑名单,但仍然是不够安全的。下面有一种办法是控制当前调用的AutoType支持范围,避免全局打开,这个更安全。

public class FastJsonRedisSerializer<T> implements RedisSerializer<T> {static final Filter autoTypeFilter = JSONReader.autoTypeFilter(// 按需加上需要支持自动类型的类名前缀,范围越小越安全"org.springframework.security.core.authority.SimpleGrantedAuthority");private Class<T> clazz;public FastJsonRedisSerializer(Class<T> clazz) {super();this.clazz = clazz;}@Overridepublic byte[] serialize(T t) {if (t == null) {return new byte[0];}return JSON.toJSONBytes(t, JSONWriter.Feature.WriteClassName);}@Overridepublic T deserialize(byte[] bytes) {if (bytes == null || bytes.length <= 0) {return null;}return JSON.parseObject(bytes, clazz, autoTypeFilter);}
}

3. fastjson反序列漏洞autoType验证

在起初阶段,AutoType的漏洞层出不穷。

从2019年7月份发布的v1.2.59一直到2020年6月份发布的 v1.2.71 ,每个版本的升级中都有关于AutoType的升级。

1.2.59发布,增强AutoType打开时的安全性 fastjson
1.2.60发布,增加了AutoType黑名单,修复拒绝服务安全问题 fastjson
1.2.61发布,增加AutoType安全黑名单 fastjson
1.2.62发布,增加AutoType黑名单、增强日期反序列化和JSONPath fastjson
1.2.66发布,Bug修复安全加固,并且做安全加固,补充了AutoType黑名单 fastjson
1.2.67发布,Bug修复安全加固,补充了AutoType黑名单 fastjson
1.2.68发布,支持GEOJSON,补充了AutoType黑名单。(引入一个safeMode的配置,配置safeMode后,无论白名单和黑名单,都不支持autoType。) fastjson
1.2.69发布,修复新发现高危AutoType开关绕过安全漏洞,补充了AutoType黑名单 fastjson
1.2.70发布,提升兼容性,补充了AutoType黑名单

甚至在fastjson的开源库中,有一个Issue是建议作者提供不带autoType的版本。后来fastjson2中改为必须显式打开才能使用autoType。

关于早期安全漏洞发掘人员和autoType功能斗智斗勇的故事如果感兴趣可以参阅以下博客:

【FastJson】FastJson AutoType-CSDN博客

3.1 漏洞验证准备工具

1. 测试工具Burp Suite 或者Postman

2. dnslog在线平台; http://dnslog.cn/

3.2 漏洞验证步骤

1. 打开Burp Suite默认浏览器

2. 访问项目地址,并登录系统,调用接口

3. Http history找到登录接口,send to Repeater(如果知道报文结构的话,前三步也可以直接用Postman工具构造请求,我的截图是使用Postman工具,引用链接使用的是Burp Suite)

4. 在dnslog在线平台获取域名

5.,把requestBody中json替换

{"zeo": {"@type": "java.net.Inet4Address","val": "3yttqu.dnslog.cn"}
}

6. 调用接口:返回成功,说明fastjson进行了正常反序列化过程

7. 回到dns平台,点击Refresh Record,获取到了调用者的ip Address

3.3 为什么测试结果验证了漏洞的存在

这个测试结果可以验证漏洞的存在,是因为它展示了一个实际成功执行的攻击示例,并且在 DNS 日志记录中捕获了相对应的 DNS 请求。

具体原因如下:

  1. 漏洞描述中的关键点

    • 漏洞涉及 Fastjson 序列化问题,允许攻击者利用 @type 属性执行潜在危险的代码。
    • 攻击者可以利用这个漏洞从系统中提取敏感信息,并对系统进行进一步的攻击。
  2. 测试请求的执行

    • 测试步骤中,通过 POST 请求向目标 URL 发送数据
    • 请求体中包含了一个特殊的 Payload
  3. 响应结果

    • 响应结果显示了 HTTP 200 状态码,表明请求被成功处理。
    • 表示 Fastjson 在处理这个请求时没有阻止序列化的数据类型,验证了 Fastjson 的漏洞。
  4. DNS 记录验证

    • 在 DNSlog 平台上的日志记录显示了 3yttqu.dnslog.cn的查询记录。
    • 这些 DNS 查询的时间戳与测试请求的时间匹配,说明目标服务器确实处理了请求,并试图解析传入的主机名。

如果你想在查阅使用Burp suite验证漏洞的范例,可以阅读以下博客:

fastjson反序列漏洞autoType验证和解决 - 简书

解决建议:

要解决该漏洞,需要在代码中将fastjson的safeModel配置为true。而fastjson2.0版本在缺省配置(safeMode)下是安全的,所以升级到fastjson2.0版本也是一个很好的办法。
 

4.温少对AutoType安全机制的介绍和安全要求

针对这些安全问题,温少亲自在github上讲述fastjson2的安全机制,并强烈要求“打开AutoType不应该在暴露在公网的场景下使用”

https://github.com/alibaba/fastjson2/wiki/fastjson2_autotype_cn

原文:

1.  必须显式打开才能使用。和fastjson 1.x不一样,fastjson 1.x为了兼容有一个白名单,在fastjson 2中,没有任何白名单,也不包括任何Exception类的白名单,必须显式打开才能使用。这可以保证缺省配置下是安全的。

2.  支持配置safeMode,在safeMode打开后,显式传入AutoType参数也不起作用。

3.  显式打开后,会经过内置黑名单过滤。该黑名单能拦截大部分常见风险,这个机制不能保证绝对安全,打开AutoType不应该在暴露在公网的场景下使用。

5.总结

针对fastjson反序列化有关的安全问题。如果系统并非内部局域网使用,使用fastjson2并且不启用默认关闭的AutoType机制是最有效的安全做法。

参考资料:

【FastJson】FastJson AutoType-CSDN博客

fastjson反序列漏洞autoType验证和解决 - 简书

https://github.com/alibaba/fastjson2/wiki/fastjson2_autotype_cn

http://www.zhongyajixie.com/news/19174.html

相关文章:

  • 网站建设维护费百度搜索网站优化
  • 网站如何在360做提交百度站长工具怎么用
  • 做网站需要什么认证推广软文怎么写
  • 那做网站seoul是什么品牌
  • 做adsense对网站有什么要求投稿网站
  • 房产信息网站模板百度客服电话4001056
  • 一家做特卖的网站叫什么app拉新一手渠道商
  • 网站架构图怎么做win7系统优化大师
  • 如何用网页设计制作个人网站荆门网络推广
  • wordpress代码添加游戏优化大师
  • 深圳设计公司有哪家网站推广与优化平台
  • 网站备案会检查空间郑州众志seo
  • 网站编辑的栏目怎么做韩国vs加纳分析比分
  • 焦作 网站建设大连seo建站
  • 做网站 二维码登录网络营销推广工具有哪些?
  • 网站开发工作经验简历seo优化基础教程pdf
  • 建设厅培训中心网站微信视频号可以推广吗
  • 做的比较好的个人网站广告营销方式有哪几种
  • excel服务器做网站西安网页设计
  • 住建局人员名单青岛关键词优化报价
  • 模块化网站建设新网站快速排名软件
  • 怎么建动态网站站长工具介绍
  • 开发网站能赚多少钱关键词歌词含义
  • 虚拟机web网站怎么做推广标题怎么写
  • 温州网站设计力推亿企帮广告联盟平台哪个好
  • 专门做招商的网站是什么情况neotv
  • 分类信息网站如何做排名万能优化大师下载
  • 丽水企业网站建设域名seo查询
  • 网站定制哪家正规站长之家备案查询
  • 公司做网站所上传的产品图片2345网址导航大全