Fastjson1.1.18 发布,解决 hash 碰撞问题 - 开源中国社区
Fastjson1.1.18 发布,解决 hash 碰撞问题
iamaxman 2012年04月11日

Fastjson1.1.18 发布,解决 hash 碰撞问题

iamaxman iamaxman 发布于2012年04月11日 收藏 5 评论 4

腾讯云 十分钟定制你的第一个小程序>>>  

刚从温少手中接手维护,很多事宜还不清楚。
因为之前一直负责安全和故障分析方面的工作,所以接手后第一工作是加固 hash碰撞导致攻击的问题。

从客户端传输的json文本给服务端转换成JSON对象时,绝大多数的实现底层都是用hashmap存存储。这比web容器处理post请求的参 数更容易攻击成功。对于request对象中Parameter parser来说,因为有http规范在那儿,x-www-form-encoded下有一个“&”就是一个参数分隔。可以统计&多少就 知道有多少个参数,限制个数就可以解决。

而对于multipart的只要统计boundary的个数也可以限制参数的个数。

但是对于JSON文本,你不能说根据“:”,“,“的个数,因为正常的文本内容主要是以","分隔的。而":"也是很正常出现的。无法根据它们的 多少就认定这是一个很多key的json对象。从http的处理阶段无法做准确判断,只能在json parser上限制某一节点上key的个数,或者直接不让它们产生hash collision.

限制key个数的方案最终无法确定以多少为合适。所以最终从hash collision下刀,因为HashMap一些方法是final的,无法继承,所以COPY了它的源码在需要修改的地方重新实现了一下。加了一个实例字 段的随机数,对于每一个实例有一个独立的随机值,防止从hash算法上倒推出相同hash值的字符串。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:Fastjson1.1.18 发布,解决 hash 碰撞问题
分享
评论(4)
最新评论
0
md5转sha1?
0
负责人的关注点不一样,质量就会更上一层楼!
0
fastJson已经很牛逼了
0
换人了? 期待变化
顶部