最近爆发的Log4j代码执行漏洞 CVE-2021-44228,不光在安全圈引起了轩然大波,整个互联网行业都有受到波及,但这个漏洞的"始作俑者"是一个仅拥有3个赞助者的开源项目。虽然可能有其他没有统计到的捐助渠道,但最终数字不会超过太多:
我们几乎可以说,世界上99%以上的开源软件开发者实际上是在用爱发电。这也是为什么我们经常在Github上看到废弃掉的开源项目,而且这个比例国内会比国外高很多,我想主要原因还是国内的程序员们日常工作会更辛苦一点,对于业余的没有回报的事情,在过了初始阶段的兴奋劲儿以后,对于无尽的issue和需求,没有太多坚持下去的动力。
我做开源的动力 {#_1}
我坚持更新Vulhub有4年了,对于为什么自己能坚持走下来的原因,我总结下有这样几点:
- 对于我来说Vulhub是一个很好的学习最新漏洞与历史漏洞的一个媒介,而不仅仅是简单的开源项目
- 我能够从做开源项目中获取到更多社区影响力,比如我在Github上拥有了4.6k followers,这让我能够间接地获得收益
- 我收获了网安网、火线、ProjectDiscovery等平台的长期赞助,历史上也获得过长亭科技、cvebase、阿里云先知的赞助,虽说不能提供一份全职工作,但是Vulhub活的可以说比绝大多数开源软件都要好
- 开源的经历也是自己简历上不可或缺的一部分
我想,上述四点里如果能满足任意两点以上,我就可以坚持把开源做下去了,如果让我挑出我最感激的两点,那必然是第一和第三,第一满足的是自己的精神需求,第三满足的是自己的物质需求。
除了上述赞助我的平台和公司,还有一些个人用户小伙伴也有对我进行无偿的支持,在此一并进行感谢:
大家可以在这个页面找到他们:https://github.com/sponsors/phith0n,我把金额打码了,每一笔钱都是对开源事业的贡献,无论多寡。
我的开源项目赞助预算 {#_2}
当然,作为一名开源项目的参与者,我深知开源项目获得物质上的收入是很难的,大部分人容易获得的也就只有第4点。所以,我会考虑给自己建立一个开源项目赞助预算,这个点子来自于我阅读的另一个博主的文章《我给自己设立了每月 $20 的开源捐赠预算》,早在我到新加坡这边来之前就开始了。
我的预算大概是每个月不超过$30美金,我会按照下面这几个标准来挑选赞助的对象:
- 我日常使用的比较多的项目
- 安全相关的项目
- 倾向于个人项目,而非商业公司运作的项目,但这一条并不绝对
我赞助的前提条件是,项目必须保持长期稳定的更新,不能是三分钟热度,所以我会选择更新了至少半年以上的项目。另外在超出预算后,我可能会停止现有的一些赞助转而赞助新的项目,所谓雨露均沾了。
现阶段我赞助的项目或个人有下面三个,我的预算仍然没有花完:
- Django,我使用最多的Web开发框架,这个也不用多说
- Sameer Naik,这个人做了几个Docker相关的项目,特别是docker-gitlab,给Vulhub提供了很大的帮助
- Swissky,开源了不少安全相关的工具和文档
虽然单个人每月2、30美元的赞助并不算多,但是在大多数人都养成赞助开源的习惯以后,相信开源项目的作者也能获取到总量不小的收入。
建立你自己的预算和赞助页面 {#_3}
读到这里的同学,如果你是一个开源软件的使用者,你也可以像我一样设立一个"开源软件捐助计划",给自己设立一个预算,即使每个月$5,你就可能可以赞助5个开源项目。
在国外平台赞助时可能需要使用Visa信用卡或者Paypal,相对来说Paypal会更方便,银联卡也可以使用。但因为没有微信或支付宝,这一点也是很多国内的同学难以赞助开源项目的原因之一,希望各大平台能尽快接入。
如果你是一个开源项目的贡献者,你也可以积极建立自己赞助页面,接受大家的捐赠。常见的赞助平台有下面几个:
- Github Sponsor,中国大陆地区的开发者暂时无法开通赞助通道,如果你有香港等地区的银行卡,开通时将地区选择为香港即可建立自己的受赞助页面
- Open Collective,支持提现到Paypal或银行卡
- Patreon,支持提现到Paypal或银行卡
- Buymeacoffee,支持提现到Paypal或银行卡
- 爱发电,国内的平台,可以使用支付宝或Paypal收款
最后,我相信log4j的事情以后仍然会再发生,但是我希望在那一天到来时,开源项目的作者正拿着自己值得的收入修复漏洞,而不再用爱发电。