既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
“Log4j 维护者一直在为缓解措施而失眠;修复错误、文档和 CVE,还要回应他人的询问。即便如此,他们还要遭受许多严厉的批评乃至抨击——哪怕这份工作没有任何酬劳,哪怕这个为了向后兼容而保留的功能我们其实也不喜欢。”
Volkan Yazıcı 这个回应可谓“一石激起千层浪”,不仅是因为漏洞起源,更多的是因为他所说的“这份工作没有任何酬劳”:从此次 Apache Log4j2 漏洞的影响范围来看,将其看做打入互联网的“半壁江山”也不为过,这样一个使用广泛的开源项目,背后维护者没有得到赞助吗?
没有,几乎没有。从 Cryptogopher+Go 团队安全负责人 Filippo Valsorda 在推特上发布的截图来看,在本次事件发酵之前,赞助 Apache Log4j2 项目的只有 3 人——一个应用于整个互联网行业“半壁江山”的开源项目,只有 3 个人赞助。
不仅如此,据网络安全记者 Catalin Cimpanu 表示,Apache Log4j2 主要是由三名志愿者在他们的业余时间进行维护工作的。
对此,Filippo Valsorda 不禁发推呼吁:
“这就是修复了导致数百万美元损失的漏洞的维护者:‘我在业余时间维护 Log4j’、‘一直梦想全职做开源’、‘只有 3 个人在资助 Ralph Goers(Apache Log4j2 项目创始人)’。人们,我们正在做什么啊?”
所幸,截至发稿,项目赞助者已增至 63 人。
二、被“白嫖”的项目比比皆是
除了 Apache Log4j2,还有许多开源项目也陷于类似处境。
- Babel
Babel 是一个用于 JavaScript 的通用多用途编译器,开发者通过 Babel 可以使用(或创建)下一代的 JavaScript 以及 JavaScript 工具,许多主要框架(React,Vue,Ember,Polymer)以及著名公司(Facebook,Netflix,Airbnb)都是 Babel 的用户。
可就是这样一个影响深远的开源项目,却依旧陷入了财务危机:今年 5 月 Babel 宣布,由于花钱速度持续高于获取捐赠的速度,Babel 已经陷入了财务困境,当前剩余的资金将很快被用完,该项目储备资金目前只够维持到 2021 年底。
- Curl
今年 11 月,有用户向苹果请求更新 macOS 12 中与 Curl 有关的信息,结果苹果直接回复用户让他自行联系 Curl,并提供了 Curl 的帮助页面地址。
此事引发开源项目 Curl 创始人 Daniel Stenberg 极度不满,直接怼了一通:“想象一下,一家市值万亿美元的公司将各种开源组件组合在一起,每年可从中获利数十亿美元。当用户就其提供的产品寻求帮助的时候,这家公司反而将用户推给开源项目。这个开源项目是志愿者运营和维护的,而这家公司(苹果)从没有赞助过一分钱。”
需要明确的是,Daniel Stenberg 只是针对苹果利用 Curl 获利并将用户需求推给 Curl 的做法感到不满,他选择将 Curl 免费开源时也并非是为了挣钱,而是“曾在开源中受益匪浅,因此想通过开源的方式回馈给开源世界,让世界变得越来越美好。”
三、“这就是开源丑陋的一面”
由 Apache Log4j2 揭示的开源项目维护者艰难处境的问题,在网络上引起了轩然大波。
有人怀疑这只是项目维护者推脱的理由:
“如果他们得到报酬,他们会写出更好的代码吗?荒谬!”
也有人为项目维护者打抱不平:
“也许不会,但至少有一些补偿可以让他们忍受那些免费使用他们的软件并在软件损坏时受到无尽抱怨的吃力不讨好。要知道,自由软件的全部意义在于您拥有源代码并且可以自由地自行修复它。”
也有人感慨这就是开源的现状:
“不幸的是,这就是开源丑陋的一面。当项目顺利进行时,一切都很好。但是当项目出问题了,每个人都会抱怨。可笑的是,通常抱怨最多的人贡献最少,这就导致那些拥有一些世界上最常用项目的才华横溢的开发人员,几乎没有得到认可。”
四、专家:安全漏洞无法避免
针对这场争议,CSDN 也向几位开源领域的专家询问了对此事的看法。
开源社理事长庄表伟指出,软件出现 Bug、漏洞或者安全风险,本质上是一个技术问题,无法避免,只能尽快修复。而随着软件世界使用的开源软件越来越多,引入的风险就会不断增加,同时一款开源软件被使用的范围越来越广,这款开源软件出现漏洞所造成的损失也会不断增大。
基于此,构成了对“开源供应链风险趋势”的基本判断或出发点,即提升风险应对能力,识别潜在风险源头和预防风险发生:
1、提升风险应对能力,首先是企业的责任(不能假设自己下载回来的开源软件,就是安全的,自己要有风险意识,要能应对各种突发状况。)
2、识别潜在风险源头,这个是整个开源生态的责任,最好的做法是类似于OpenSSF的组织,开展系统性的工作。(这方面刚刚起步,但是未来应该是开源领域的重要趋势)
3、预防风险发生(当然还包括及时修复 Bug),这个是开源社区(开发团队)的工作,大家可以帮助他们改进,但是本质上还是要靠他们自己。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
8825)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!