Log4j2 维护者吐槽没工资还要挨骂

2024-08-24 14:32

本文主要是介绍Log4j2 维护者吐槽没工资还要挨骂,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基于 Java 的日志记录工具 Apache Log4j2 近日出现了一个高危漏洞,攻击者可以利用其 JNDI 注入漏洞远程执行代码,此漏洞牵涉面非常广,以至于国内外的个人或公司用户都对此高度关注,而 Log4j2 开发组在漏洞曝光后及时发布了 Apache Log4j 2.16.0 维护版本,默认禁用 JNDI,使此漏洞得到控制。

Log4j2 的维护者之一 @Volkan Yazıcı 在推特上吐槽:Log4j2 维护者只有几个人,他们无偿、自愿地工作,没有人发工资,也没人提交代码修复问题,出了问题还要被一堆人在仓库里留言痛骂。

图片

Log4j 维护者一直在为缓解措施而失眠:修复、文档、CVE、对查询的回复等。然而,没有什么能阻止人们痛骂(bush)我们,因为这份没有报酬的工作。其实我们都不喜欢这个出于向后兼容性问题而需要保留的功能(指 JNDI )。

这是一个非常现实的问题,我们姑且将这个问题称之为“开源可持续性问题”。通常来说,一个开源项目,要不就是反响平平无法形成生态,导致开发者热情逐渐降低、慢慢停掉;或者项目是大热门,很多个人和公司都在用,但 —— 除了出问题的时候问一下,几乎没有人会为开发者提供财务支持或贡献代码修复。

而那些使用免费资源而从不回馈社区的公司,他们对开源软件的利用一直是开源项目维护者的痛处。他们使用开源项目达到企业成本最小化和利润最大化,然而这些利润跟开发者一毛钱关系没有,甚至还有公司出了问题赶紧甩锅给开源作者,比如前段时间 curl 作者吐槽苹果把他当做免费工具人:

“想象一下,一家市值万亿美元的公司将各种开源组件应用到自己的产品中,每年赚取数十亿美元的利润。当这家公司的一个用户向它提供的产品寻求帮助时,公司却把用户推给开源项目。这个开源项目是由志愿者运营和维护的,这家公司从未赞助过一分钱。”

这样的情况已经持续了相当一段时间,不过现在已经有人在思考这个问题,并给出了一些权衡的建议。上周六,谷歌密码学家和 Go 语言安全负责人 Filippo Valsorda 在个人博客呼吁:开源项目维护者应当和那些使用软件的公司进行更专业的交流,以获得付费支持,使开源更具可持续性。

Filippo 指出一个问题:目前大多数开源项目维护者属于以下两类之一:志愿者或大公司员工,有时两者兼而有之,但这两种模式其实都不健康。一个成功项目的普通维护者其实有资格成为高级软件工程师,这些人每年可以轻松赚取 15W-300W+ 美元的年薪,但现在他们的开源项目经济来源只有 GitHub Sponsors 和 Patreon(一个募捐网站),这是两种不严肃且不稳定的薪资来源。

而被聘为大厂的全职开源员工也并非上策,踏入公司的第一步你就成为了资本的一部分,随着主管和绩效组的“如何证明你的工作和工资相匹配?”开发者开始背上各种 KPI ,主动或被动地卷,将越来越多的时间花在努力证明自己的工作和价值都非常重要 —— 在这种压力之下,大部分开发者将逐渐丧失对开源项目的热情,这种情况在多个公司和生态系统中一遍又一遍地上演。

综合目前的情况,Filippo 提出了一个新的观点:既然大公司需要项目供应链安全和质量达到标准,那么他们就有必要为使用的开源项目付费 —— 公司可以跟开源软件开发者建立合同关系,按照市场价的薪资支付,然后要求开发者保证项目的质量和漏洞问题。反过来,项目的维护者仍然可以自由地持续关注项目,优先考虑项目的长期健康状况,并满足公司对项目的要求。

这种流程和生态的建立需要一些时间,重点在于如何转变公司的态度 —— 公司,尤其是资本控制的上市企业,完全没有为大型产品、项目和服务核心的开源组件付费的热情,它们只会在开源许可证和法律底线的条件下做利益最大化的事情,而不是“公平交易”。而目前流行的一些许可证,像 Apache 、MIT,都是提供所有内容但要求的东西很少,更进一步满足了企业白嫖的需求。

目前世界 500 强企业所使用的许多重要的开源项目都由志愿者在下班后的业余时间维护,这些企业甚至连代码安全性都懒得审查和测试。开源维护者创造了大量价值,但几乎一无所获,这种开源文化是无法长久持续的,是时候做出一些改变了 —— 开源维护者这个角色应当成为一个真正的、有适当报酬的职业,而不是依赖寥寥无几的捐款的业余爱好者或者企业的免费劳动力。

 

这篇关于Log4j2 维护者吐槽没工资还要挨骂的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1102741

相关文章

log4j2相关配置说明以及${sys:catalina.home}应用

${sys:catalina.home} 等价于 System.getProperty("catalina.home") 就是Tomcat的根目录:  C:\apache-tomcat-7.0.77 <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" /> 2017-08-10

log4j2.xml配置笔记

转载自阿豪聊干货:https://www.cnblogs.com/hafiz/p/6170702.htmlConfiguration Configuration 最外层节点 status:日志打印级别 monitorinterval:重新配置的监测间隔时间 –Appenders ----Console 定义输出到控制台的Appender. name:指定Appender的名字

代码执行漏洞-Log4j2漏洞

1.执行以下命令启动靶场环境并在浏览器访问 cd log4j/CVE-2021-44228docker-compose up -ddocker ps 2.先在自己搭建的DNSLOG平台上获取⼀个域名来监控我们注⼊的效果 3.可以发现 /solr/admin/cores?action= 这⾥有个参数可以传,可以按照上⾯的原理 先构造⼀个请求传过去存在JNDI注⼊那么ldap服务端会执⾏

我们还要做一只程序猿多久

每天上班,吃饭,下班,挤地铁,睡觉。日复一日,年复一年。周围的圈子就这么大。每天晚上睡觉前我会想,这不是我要的。可是,为了养家糊口,还是必须重复,重复。。。 也许等买了房子,买了车子。会考虑转行,以前是想做一个建筑工程师,每天能去工地转,虽然烈日炎炎,虽然冰天雪地。但只要让我走,让我时刻在蓝天白云下,让我感受到大自然。我就感觉很舒畅,很淋漓。。。。 程序猿工资是很高,有人说天天动动手指就

没参加会议,还要 30000 字的会议材料写总结?用好 AI工具,30 分钟堵住领导的嘴

前段时间本来要参加总公司的重要会议,但由于临时出差错过了。 分公司老总,给了我 10 份会议材料内容,让我学习,并在节后梳理出要点。 结果,一过节就全都给忘记了,咋办?听说最近Kimi出了新玩法,能大幅提高使用效率,说干就干,研究看看多长时间能完成! 一、准备工具 KimiChat网址: https://kimi.moonshot.cn/ 即时工具: https://ww

为什么老员工的工资比新员工的工资低

在职场环境中,一个引人注目的现象是,有时老员工的工资竟然低于新入职的员工。 案例分析 以某科技公司为例,该公司近年来在人工智能领域取得了显著进展,急需大量具备相关技能的人才。为了吸引和留住这些人才,公司采取了高薪招聘的策略,新入职的AI工程师薪资普遍高于公司内部的老员工。然而,这些老员工中不乏在公司工作多年、为公司发展做出巨大贡献的技术骨干。由于公司未能及时对老员工的薪资进行调整,或者调整幅度

Python习题 159:设计一个工资计算器

(编码题)编写一个 Python 函数,设计一个工资计算器,用来计算每周的工资。参数有: hours_worked:工作小时数hourly_rate:时薪overtime_rate:超出40小时的工资率,默认为 1.5,仅限关键字参数 def calculate_payment(hours_worked, hourly_rate, *, overtime_rate=1.5):regul

设置log4j2自动删除过期日志

设置log4j2保留30天内的日志,过期自动删除 <?xml version="1.0" encoding="UTF-8"?><Configuration status="WARN"><Properties><Property name="LOG_PATTERN">%highlight{%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %lo

在Java中异步编程,同事非要用rxJava,被我一顿吐槽!

点击上方“朱小厮的博客”,选择“设为星标” 后台回复"书",获取 在Java中异步编程,不一定非要使用rxJava, Java本身的库中的CompletableFuture可以很好的应对大部分的场景。 这篇文章介绍 Java 8 的 CompletionStage API和它的标准库的实现 CompletableFuture。API通过例子的方式演示了它的行为,每个例子演示一到两个行为。

为什么生成设备号过后,还要去板子mknod /dev/led c 11 0来生成设备文件呢?

在Linux系统中,生成设备号(通过MKDEV宏或类似方式)和创建设备文件(如使用mknod命令)是两个不同的步骤,它们各自承担着不同的职责。 为什么需要生成设备号? 设备号是内核用来唯一标识和管理设备的。每个设备都有一个主设备号和次设备号,其中主设备号标识了设备的类型(如硬盘、字符设备等),而次设备号则用于在同一类型的设备中区分不同的设备实例。生成设备号是在内核层面进行的,它确保了设备在内核