由于最初实现时安全性考虑不足,fastjson为了解决包含接口或抽象类的bean序列化后反序列化将之类型抹去无法拿到原始类型的问题,引入了AutoType,即在序列化的时候,把原始类型记录下来。没想到这带来了后面众多的安全漏洞。
@type
到内容,试图把JSON内容反序列化成这个对象,并且会调用这个类的setter方法。
那么就可以利用这个特性,自己构造一个JSON字符串,并且使用@type
指定一个自己想要使用的攻击类库,利用漏洞入侵到目标服务器,通过服务器执行命令。
从2019年7月份发布的v1.2.59一直到2020年6月份发布的 v1.2.71 ,每个版本的升级中都有关于AutoType的升级,很多都是为了解决与之相关的安全漏洞。
软件架构的实质就是规划如何将系统切分成组件,并安排好组件之间的排列关系,以及组件之间互相通信的方式。
软件架构的终极目标是,用最小的人力成本满足构建和维护该系统的需求。
架构和框架并不是相同的东西:
- 架构一定是业务相关的,包含了业务属性,并且这个业务属性是系统的核心价值;
- 框架一般都是业务无关的,是我们编码实现架构的的工具,属于实现细节。
最初设计系统架构时,并不需要过多考虑使用什么框架,而更多的是关注自身业务。
容器仍无法提供与虚拟机相同的安全性和稳定性。由于它们共享主机的内核,因此不能像虚拟机一样完全隔离。
容器是进程级的隔离,一个容器可以通过影响宿主机内核的稳定性来影响其他容器。
一旦容器执行了任务,它就会关闭并删除其中的所有数据。如果希望数据保留下来,则必须使用"数据卷"进行保存,这需要在主机上进行手动配置。
作为信息论之父,香农的贡献再怎么高估都不过分。在科学史上,香农是足以和牛顿、爱因斯坦相提并论的。按照一些学者的说法,爱因斯坦开创了相对论,但没有把我们带入相对论的时代;香农开创了信息论,并且把人类带入了信息时代。有点夸张,研究的领域不同,香农和爱因斯坦不存在可比性,但是香农的贡献可见一斑。
欲了解香农其人的,再推荐一本书,中文书名叫《香农传》,英文书名叫《A Mind at Play》。从书名和片名可以看出,香农的标签之一是 play,或者说游戏人生。
纪录片地址: https://www.bilibili.com/video/BV1754y1z71b
身体扫描法是以「最舒服的方式平躺」下来,「从头到脚扫描每一个部位」,包括:额头,眉毛,眼睛,鼻子,嘴巴,肩膀,手臂,依次类推上半身,下半身。
「最大可能想象着这些部位只受重力的作用要沉到地板上。伴随着深呼吸调整自己的呼吸节奏」。
「脑袋只关注着自己的一呼一吸。如果思绪飘到其他地方,就慢慢的拉回来继续关注呼吸」。呼吸时可搭配数数1,2,1,2来放空自己的思绪。