收起

温馨提示

只有认证用户才能操作

为了享受完美体验,赶快去认证吧

认证
矿工茶馆 > 话题详情
标记
资讯攻略
1906
9
举报
2015-04-26
9:10
村民先生 楼主
7 工业时代史蒂夫
帖子:134

大家都知道我的世界1.8.4版本修复了,但是为什么出的这么快呢?来看一则关于1.8.4的轶闻吧,希望大家能够喜欢!

首先我和大家说说为什么1.8.4叫做 “security-release” 即 “安全-发布” , 其实在24小时前 一个名为ammar2 的发布了这个

(等下我会全部介绍),首先说说这位 ammar2,其实他是Bukkit和Spigot的一位开发者。2年前,他在开放时发现了一个巨大的漏洞,可以简单的将一个服务器崩溃。

由于事情的严重度,2013年7月10日他立刻通知了Mojang,希望能尽快修复这个漏洞。当时的稳定版本是1.6.2.可惜Mojang没有给予满意的回复。

2013年7月28日:他直接去和一位Mojang员工交流,并且详细的介绍了这个漏洞,并且将写好的代码直接证明。

2013年8月19日:他又通知了一遍,Mojang回复说他们目前正在修复中

2013年9月24日:他又尝试了一遍,可是Mojang回复说已经交给别人了

2013年10月25日:又尝试了一遍,可惜没有收到回复

2013年10月27日:同样没收到回复

ammar2 决定等待看看。

2年后(1.7和1.8大版本都出了后),他终于忍不住了,决定公开这个漏洞,“威胁”Mojang尽快修复。

漏洞介绍:

这个漏洞会直接让服务器的CPU和内存到最高值(根据情况而言),直到让服务器崩溃。原理就是Minecraft多人是一款传输数据的游戏,比如说你登录服务器的时候,服务器会把你背包内容的数据传输到你的客户端内。

Minecraft的物品生成所谓的 metadata 数据,这些会影响物品的自定义信息,这些信息都是NBT格式,和JSON差不多(这样懂的人应该多点了吧)。

给个例子吧:(一本书的NBT数据)

这个漏洞就是采用了这个传输系统,玩家的客户端内可以简单的创造一些简单的NBT数据(数量多+生成快),可是到了服务器那里可就难咯,因为服务器要记住的数据太多了 (而且都是垃圾数据)。

ammar2选择弄一个List数据带5层的子数据(不知道为什么粘贴代码后会乱码,所以我只好载图了,你们可以去原帖复制 )(不乱了 YEAH!!)

总共有300个表列(list),每一个list拥有10个子list数据,也就是说 10^5 * 300 = 30,000,000

总共30,000,000的数据。但这不是最重要的,这些数据大概是26.6Mb大小,但是在传输的时候,数据会被压缩,大概变成39Kb,但是服务器收到数据时会解压输入,那么数据就会重新变成26.6Mb了,你想象一下服务器的CPU和内存吧。。

这个漏洞存在在Minecraft所有的版本(旧版本-1.8.3)

ammar2建议2种方式来防御这个漏洞

限制客户端可以传输的NBT数据数量

限制每一个数据的大小和形式

ammar2发布这个代码前也是深思熟虑后才公开的。毕竟他也不想这样毁了许多服务器和玩家,但是一直这样下去也不是办法,毕竟这个BUG大概也有其他人发现了吧。而且Mojang过了这么久都没修复,他认为Mojang已经不是当初的小公司了,现在Mojang的身价已经非常高了,所以这种严重的漏洞必须而且尽快被修复。

Mojang当然也非常快就发表了他的说法

他们说这个漏洞本来已经被修复了,可是在重写部分Minecraft数据时不知道怎么回来了。(0.0)

Dinnerbone说ammar2没有使用正确的程序来通知Mojang(他好像是和Grum邮件反馈的)。

Dinnerbone说是ammar2的错误。

同时Mojang直接来个紧急会议,希望在最短的时间内发布1.8.4(还真在24小时内发布了。厉害)。

所以1.8.4的更新才会叫做“security-release”。


打赏

打赏人数0钻石+1理由

只看楼主
打赏楼主
阔绰的打赏了钻石  1  颗
  • 1
  • 2
  • 3
  • 4
  • 5
麦块有你更精彩 66666666666 交个朋友吧 土豪,不解释 愿HIM与你同在
确定
评论
慵懒的舒~
9 钻石无忧史蒂夫
帖子:40

水贴啊

1楼
2015-04-26 09:28
回复

(//▽//)

村民先生 楼主
7 工业时代史蒂夫
帖子:134

这不是水贴。这是咨询。如果是水帖,在一楼发些乱七八糟的东西

2楼
2015-04-27 20:24
收起回复
我也说一句...
回复
天梦{真}
天梦{真}:这个我为什么感觉就是乱七八糟的呢?
2015-05-10 13:22
回复
村民先生
村民先生:这是知识,电脑知识,你们看不懂的
2015-05-23 21:45
回复
load
3 石器时代史蒂夫
帖子:3
也是
3楼
2015-05-03 13:10
回复
you are the one my love
2 手撸大树史蒂夫
帖子:5

看不懂

4楼
2015-05-03 14:19
回复
别在我坟前哭,脏了我轮回的路
3 石器时代史蒂夫
帖子:2

意思是这种漏洞的能量完全发挥,可以让一个服务器的CPU达到顶峰,从而使服务器蹦掉?所以就立马发布了1.8的安全版本1.8.4吗?

5楼
2015-05-09 00:12
收起回复
我也说一句...
回复
村民先生
村民先生:非常好/1说对了
2015-05-12 21:25
回复
天梦{真}
5 巧遇铁矿史蒂夫
帖子:32
这个我为什么感觉就是乱七八糟的呢?
6楼
2015-05-10 13:22
回复
PoPoooo
1 手无寸铁史蒂夫
帖子:0
高科技我们不懂啊
7楼
2015-05-10 14:31
回复
村民先生 楼主
7 工业时代史蒂夫
帖子:134
非常好/1说对了
8楼
2015-05-12 21:25
回复
村民先生 楼主
7 工业时代史蒂夫
帖子:134
这是知识,电脑知识,你们看不懂的
9楼
2015-05-23 21:45
回复
下载排行
欢迎加入麦块社区
已奖励您
30经验值3钻石
要继续支持麦块喔
请收下3