@
xue777hua 说明你完全不懂后端
1 、那个漏洞是 log4j2 ,而不是 log4j ,两者根本不是一个东西。log4j 作者的原作者的后续产品是 logback ,也有 slf4j 的日志门面。他不是第一个发明日志的人,但是却是打日志工程化的祖师爷,log4j2 根本不是他的项目。而且 Spring Boot 的默认也是 logback ,所以只有你手动替换了日志实现才会有这个问题
2 、如果你要说 log4j2 的话,那么请问 Next.js 的 CVE-2025-29927 和 CVE-2025-55182/CVE-2025-66478 ,如果 Next.js 只做前端框架不会有这种问题,说白了,前端被浏览器和后端安全策略保护的太好了。因为规范的后端本来就不信任前端发来的数据,所以前端之前才出的少。当前端开始做后端,就有这种问题
3 、既然这个主题是关于包管理器的,正好我也发过包,你可以先去跟 AI 了解下这三者的差距,Java 的 Maven 规范远远大于前两者。首先 Java 的 Maven Central 是由 Sonatype 托管的,你要发布一个包会有域名命名空间所有权验证、强制 GPG 签名,强制提供 Javasoc 和 Sources 等。这些 npm 和 pypi 有吗?
pypi 和 npm 完全全局共享一个命名空间,抢注包名没有吗?
4 、另外 Maven 不光是包管理器,更接近来说,应该是构建管理器,包管理器只是一部分,如果放到前端,可能更接近于 npm 和 vite 的合体。
5 、另外 node_modules 的设计简直是屎中屎,全宇宙最重的东西。语义化版本控制听起来很好,实际就会引入这种供应链投毒,因为版本不锁定,要不然为啥又 package-lock.json 。而 Maven 这边的项目你可以去看看,基本都是完全锁死 gav 坐标的,不存在偷换的问题
6 、如果不说 Node.js ,就再说下 Python ,Python 的管理就复杂,从 requirements.txt 、Anaconda ,好不容易有了 pyproject.toml ,但是仍然不够好,比如对 src/ Layout 的支持,要么变成没有 src/的非包项目,要用 src/ 就必须搞成包,非常混乱