摘要:如何通过软件自动的检查法规中涉及的数据保护, 新版的CWE 4.3 给出了一个解决途径。 1. 按照惯例,先说故事
用12月初在深圳参加的"全球C++及系统软件技术大会"里C++之父Bjarne讲的一个故事, 致敬一下这位大能。
由于疫情, Bjarne不能亲自来到会场, 只能通过视频的方式和大家沟通。 下面这张照片,是我在他在做"C++20 与C++的持续演化"的演讲时,拍摄的的一张照片.
演讲中,Bjarne回顾了C++的发展历程, 重点介绍了C++20的新特性。同时也坦言面对一个语言发展方向的各种选择时的不易, 更多的是需要平衡。 在报告的最后,讲述了"瓦萨号"的故事, 来说明对于C++新特性的发布的慎重。
Be careful remember Vasal
"瓦萨"号的沉没
瑞典瓦萨王朝(1523-1654)统治时期,瑞典是欧洲的强国之一。为了与劲敌丹麦、波兰对抗,称霸波罗的海,瑞典国王古斯塔夫·阿道夫斯二世要求建造一批新的战舰,并要求战舰航速要快、火力要强、装饰要华丽,只有这样才彰显瓦萨王朝的权力、财富和战斗力。1626年初,作为其中最大的战舰“瓦萨”号,在国王的亲自监督下正式开始建造。
在“瓦萨”号建造期间,他不断下令依照他的旨意改变设计和建造要求。比如在“瓦萨”号的骨架已经安装好的时候,他下令增加战舰的长度;
国王得知了丹麦建成双层炮舰的消息,于是他又决定,在原计划修建单层炮舰的“瓦萨”号增加一个枪械甲板,把它改建成“双层”炮舰。这样一来,“瓦萨”号便拥有了双排共64门舰炮,全长达到了69米,成了当时装备最齐全、武装程度最高的战船。
“瓦萨”号进行的稳定性测试:让30个船员从船一端跑到另一端,以此检测船的摇动情况。试验中“瓦萨”号发生了危险的摇动,但对这个预警信号,建造师却视而不见,还是决定取消试验,准备航行。
1628年8月10日,斯德哥尔摩码头人头攒动,观看着堪称世界最顶级的“瓦萨”号战舰。但离岸还没来得及扬帆远航的“瓦萨”号在一阵大风浪过后,开始倾斜,接着又慢慢恢复平衡,但随即再一次朝右舷倾斜, 下层甲板在慢慢进水,舰体开始晃动下沉。就这样“瓦萨”号就在众目睽睽之下沉没了。“瓦萨”号首航仅仅10多分钟就结束了。
“瓦萨”号上安置了太多的重炮,却没有足够的压舱物,导致战舰重心过高;以及首航前没有经过严格测试等等,都是造成“瓦萨”号沉没的原因。
这些年各种语言越来越成熟,Go、Rust都对C++的应用市场形成了不小的冲击,为此C++也在不断的调整发布节奏和内容。 但一旦在语言特性方向发生战略性的错误,很可能就会导致无法挽回的局面。
2. CWE 4.3的新视图才写完话说CWE 4.2的新视图, CWE就又赶在2020年结束之前, 12月10号发布了CWE 4.3.
2.1. CWE-1340 CISQ 数据保护检测视图在CWE 4.3 中, 又增加了一张非常有用的视图: CWE-1340 CISQ Data Protection Measures. 在话说CWE 4.2的新视图中, 我们介绍了CISQ的CWE-1305: CISQ Quality Measures (2020)视图, 也介绍了有关CISQ的一些信息, 这次又是一个CISQ的视图, 不禁让人有些惊奇。
下面是CWE-1340 CISQ 数据保护检测视图的具体内容:
CWE-1340 CISQ 数据保护检测视图的节点分类信息汇总:
节点类型说明详见:话说CWE 4.2的新视图
2.2. CISQ自动源码数据保护检测工作组