由帖子 新的前端 npm 包投毒事件 想到为什么同样是包管理的 php composer 、java maven 都会要求同时写包依赖的 包作者 与 包名,唯独 js npm 只需要写包名,不需要写上包作者,这样当前端有相似包名时就容易被“投毒”。
1
runze 2023-01-07 20:38:40 +08:00
python 、rust 等也没有,所以应该是某种取舍问题
|
2
Al0rid4l 2023-01-07 20:56:34 +08:00
问题在于, 包名可以相似那为什么包作者不可以呢? 这并不解决问题
包作者仅仅是充当一个类似命名空间的角色, 从这点来说 npm 也有 scope 并且现在越来越多的库也都在使用 scope, 知名的库使用的比例会更多一些 |
3
learningman 2023-01-08 02:18:17 +08:00
对应的应该是 scope ,就好像 java 的设计,包名里带域名,你传 mavenCentral 的时候要验证域名所有权的
|
4
zjsxwc OP @runze
所以有人说 python pip 包也会被投毒 ``` 103hsfzxjy 2 天前 via Android @Jooooooooo pip 包也会被投毒,Hacker News 经常能看到 |
5
zjsxwc OP |
6
flyqie 2023-01-08 12:29:01 +08:00 via Android
|
7
runze 2023-01-08 16:05:23 +08:00
|
8
bjzhush 2023-01-08 16:30:49 +08:00
一个网络的名字,并不重要,投毒者一样可以起个假名。
最重要的是没有机制能进行审核或者尽早发现类似投毒这种问题 |
9
ragnaroks 2023-01-08 17:19:17 +08:00 1
应该用公钥来代替作者的标识,当下载一个包的时候弹出公钥导入提示,需要用户明确允许才能继续下载。
如果用户不能用公钥来识别是否预期作者,那这个用户本身不具备基础开发能力,活该被删文件。 |