From 97d32f7d402d7ed28ee8677bcca2755271b8187a Mon Sep 17 00:00:00 2001 From: tonels Date: Sun, 15 Nov 2020 14:41:06 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E7=AC=AC=E4=BA=94=E9=83=A8=E5=88=86?= =?UTF-8?q?=E2=80=94=E2=80=94=E5=BC=80=E6=BA=90=E6=B2=BB=E7=90=86/?= =?UTF-8?q?=E7=A1=AE=E4=BF=9D=E5=BC=80=E6=BA=90=E4=BB=A3=E7=A0=81=E8=B4=A8?= =?UTF-8?q?=E9=87=8F=E7=9A=84=E5=87=A0=E4=B8=AA=E8=A6=81=E7=82=B9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...7\240\344\270\252\350\246\201\347\202\271" | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 "\347\254\254\344\272\224\351\203\250\345\210\206\342\200\224\342\200\224\345\274\200\346\272\220\346\262\273\347\220\206/\347\241\256\344\277\235\345\274\200\346\272\220\344\273\243\347\240\201\350\264\250\351\207\217\347\232\204\345\207\240\344\270\252\350\246\201\347\202\271" diff --git "a/\347\254\254\344\272\224\351\203\250\345\210\206\342\200\224\342\200\224\345\274\200\346\272\220\346\262\273\347\220\206/\347\241\256\344\277\235\345\274\200\346\272\220\344\273\243\347\240\201\350\264\250\351\207\217\347\232\204\345\207\240\344\270\252\350\246\201\347\202\271" "b/\347\254\254\344\272\224\351\203\250\345\210\206\342\200\224\342\200\224\345\274\200\346\272\220\346\262\273\347\220\206/\347\241\256\344\277\235\345\274\200\346\272\220\344\273\243\347\240\201\350\264\250\351\207\217\347\232\204\345\207\240\344\270\252\350\246\201\347\202\271" new file mode 100644 index 0000000..c5d55b6 --- /dev/null +++ "b/\347\254\254\344\272\224\351\203\250\345\210\206\342\200\224\342\200\224\345\274\200\346\272\220\346\262\273\347\220\206/\347\241\256\344\277\235\345\274\200\346\272\220\344\273\243\347\240\201\350\264\250\351\207\217\347\232\204\345\207\240\344\270\252\350\246\201\347\202\271" @@ -0,0 +1,44 @@ +> 本篇内容将会引导大家思考一些治理开源项目中,代码质量的问题 + +## 引子 + +2014年4月,OpenSSL向外界公布OpenSSL的实现上,存在Heartbleed漏洞隐患,截止2014年5月20日, +在80万最热门的启用TLS的网站中,仍有1.5%易受心脏出血漏洞的攻击 +如果说Heartbleed带来了什么好处,那就是它让人们更加关注软件测试的重要性。它影响了50多万个网站。 +因此,专家们现在正在梳理OpenSSL的代码,以及许多其他开源项目的代码,以确保提高公开源代码的质量和安全性 + +基于贡献代码构建的事实是,没有任何一个开源项目是完全不可破解的。然而,有四个关键的要点, +开发社区可以采取行动,以确保项目是最新的,并检测出潜在的缺陷。 + +## 人才 +首先,重要的是要知道谁在操作代码。随着开源社区变得如此多样化,有许多不同的工作风格。因此,需要有人拥有每个项目并提供架构审查。 + +通常,会有一个项目维护者(个人、团体或组织)支持一个开源项目,也会有一些贡献者在此基础上构建项目。在很大程度上,开源项目也是建立在逐渐信任的基础上。因此,在项目中寻找并维持人才是关键。 + +虽然在开源社区中有可能存在不良行为者,但确实很少有项目维护者能够审查贡献者编写的每一行代码。这就是像GitHub和CodePlex这样的网站更容易审查贡献者和审查他们的项目工作的地方。 +同样,像Linux基金会和Apache软件基金会这样的组织已经联系了来自不同公司的专家开发人员,以帮助培养高质量的开源代码。 + +## 时间 +有了合适的人才,开源社区还必须找到时间定期检查代码,并进一步分配时间来更新它。未能及时更新是部署中存在易受攻击软件的主要原因。 + +## 预算 +除了时间,开放源码项目,开源基金会的支持,如Linux基金会的作用与Linux和ApacheHadoop的角色,往往会有更大的能力和策略来确保代码质量, +特别是有一个分配的预算项目,在某些情况下,开发人员为他们的贡献得到报酬,像RedHatLinux或Cloudera +Apache Hadoop。 + +如果一个开源项目没有商业支持,这并不一定意味着它不可能成功。像Red Hat和Apache这样的商业实体可以帮助解决服务器、 +事件和技术开发方面的预算问题,独立的开源开发人员可能无法轻松获得这些资源。 + +## 工具 +但是,即使有经验丰富的贡献者,我们也必须承认,人类还是容易犯错的。这包括可以在代码中编写无意缺陷的开发人员, +如果漏洞未被发现,那么基于该漏洞构建的站点和软件就会变得脆弱。 + +对于开放源代码项目来说,好消息是有许多免费工具可以确保代码的完整性,并且可以在开放源代码中找到许多漏洞和缺陷。 +对于代码开发,GitHub平台是非常有用的。对于功能测试,Selenium等工具也是如此。 +在静态分析中,FindBugs是一个在Java中查找错误的开放源码工具。 +类似地,Clang静态分析器是一个源代码分析工具,它可以发现C、c++和Objective-C程序中的错误。 + +项目维护者和组织可以知道是否已修复缺陷的另一种方法是注册观察已注册Coverage Scan服务的大约2500个开源项目中的一个, +该项目最初是与美国国土部合作创建的现在可以为开源开发人员提供免费代码分析的安全性。 + +项目观察员可以查看关于项目质量的高级统计数据,包括固定缺陷的数量、突出缺陷和缺陷密度率——所有这些都支持开源社区在他们的软件开发过程中构建质量和安全性。 \ No newline at end of file -- Gitee