为什么 npm pip nuget 这些包管理器不在下载冷门包(下载数量 <300k)的时候弹出提示?经常弄错包名,不仅浪费了时间还很危险,长得像热门包的假包很多有恶意代码。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
drymonfidelia
V2EX    程序员

为什么 npm pip nuget 这些包管理器不在下载冷门包(下载数量 <300k)的时候弹出提示?经常弄错包名,不仅浪费了时间还很危险,长得像热门包的假包很多有恶意代码。

  •  
  •   drymonfidelia 2024-10-06 12:38:11 +08:00 3274 次点击
    这是一个创建于 383 天前的主题,其中的信息可能已经有所发展或是发生改变。
    23 条回复    2024-10-08 10:05:00 +08:00
    weijancc
        1
    weijancc  
       2024-10-06 13:45:24 +08:00   31
    哪里来的巨婴
    drymonfidelia
        2
    drymonfidelia  
    OP
       2024-10-06 14:03:36 +08:00
    根据下载量好像确实不是很合理,想做坏事随便弄点肉鸡就能刷到 30 万
    censujiang
        3
    censujiang  
       2024-10-06 14:11:53 +08:00
    lisxour
        4
    lisxour  
       2024-10-06 14:15:24 +08:00
    下载量这个指标没有任何参考意义的
    uni
        5
    uni  
       2024-10-06 15:51:38 +08:00
    有恶意代码的被发现会直接被删除吧
    不过供应链攻击确实是个大问题,甚至 vscode 的插件都有可能会被下马
    下载量不是一个好指标,如果有更好的提醒方式就好了
    Bijiabo
        6
    Bijiabo  
       2024-10-06 15:55:34 +08:00   5
    可能你需要用这个指令,要求相关部门强力介入监管。以后发布 NPM 包要求实名认证,并且需要先申请软件著作权。
    ```sh
    npm install -g 反诈中心
    ```
    shadowyue
        7
    shadowyue  
       2024-10-06 15:57:30 +08:00
    去饭店点菜,你认真看下菜单呗
    franktopplus
        8
    franktopplus  
       2024-10-06 15:58:00 +08:00   1
    你要对你的代码负责
    june4
        9
    june4  
       2024-10-06 16:06:17 +08:00
    你可以做一个,这功能不太适合直接放到基础工具上,写个 npm 运行包装器就行
    moefishtang
        10
    moefishtang  
       2024-10-06 17:06:41 +08:00
    包管理器 apt 在找不到指定包名的时候会推荐相关包名
    不过我觉得还是自己注意比较好
    CapNemo
        11
    CapNemo  
       2024-10-06 18:46:53 +08:00
    感觉单纯下载量不是好指标。我建议根据名称进行搜索,如果存在下载量与当前包的比值大于一定程度的包,则要求用户再次确认。
    slowman
        12
    slowman  
       2024-10-06 19:33:22 +08:00
    谁来净化一下程序员圈子
    zxcslove
        13
    zxcslove  
       2024-10-06 20:19:15 +08:00
    这个还是靠社区自发跟随的黑名单提醒比较合理
    NoOneNoBody
        14
    NoOneNoBody  
       2024-10-06 20:38:02 +08:00
    "我们 npm pip nuget 是需要管的"
    Insolitude
        15
    Insolitude  
       2024-10-06 23:37:57 +08:00 via Android
    确实,返回信息提供个包简介,官网和一些相近的包名,来个 2 次确认就行了。有的时候一下子记错了,直接安装了还是挺危险的
    xuanbg
        16
    xuanbg  
       2024-10-07 10:35:04 +08:00
    不会写代码可以不写的。真的,一个成人需要为自己的行为负责,而不是推给别人,让别人来喂你吃饭
    Tidal
        17
    Tidal  
       2024-10-07 15:13:27 +08:00
    @Bijiabo 再加一个工信部备案与公安备案
    dlyxy
        18
    dlyxy  
       2024-10-07 21:14:24 +08:00   2
    楼上为什么好多人在喷?楼主说的其实算是供应链投毒一种,确实常见、危险而且暂时没有解决方案,是个很值得讨论的问题。
    drymonfidelia
        19
    drymonfidelia  
    OP
       2024-10-07 21:54:57 +08:00
    @zoumouse V 站大部分人只在意形式主义安全,习惯就好
    qzydustin
        20
    qzydustin  
       2024-10-08 01:32:28 +08:00
    唯一的办法就是审核呗
    neoblackcap
        21
    neoblackcap  
       2024-10-08 02:09:46 +08:00
    @drymonfidelia 你的需求不是没有人做,但是社区不好做这个事情,但是私有源提供者倒是很乐意提供这样的解决方案,关键是需要付费,以 Python 为例, 例如 anaconda, 以及 activestate 都是在做这个生意提供可信的依赖管理。这些都是企业服务了
    krixaar
        22
    krixaar  
       2024-10-08 09:04:59 +08:00
    @zoumouse #18 因为楼主这种单纯提醒下载量的建议对于恶意包来说如果有这种限制他们肯定会刷量,反而导致真正好用的冷门包没有量让人不敢下,相对来说没有建设性,就是促进内卷刷量。真正有用的解决方案,一是花钱人工审核让企业买单个人用户蹭着用,二是标准库做完善些,这两个方案大家心里都清楚,但都不是一句话两句话能搞定的。
    samnya
        23
    samnya  
       2024-10-08 10:05:00 +08:00
    先不说你这个需求是不是合理吧。假设真要实现的话,包管理器和仓库之间也不是强关联的。
    基本上包管理器都支持自建私有仓库、镜像仓库等等非“官方”仓库,它也区分不出来哪个是所谓的官方。所以标注虚假包的这个活,需要由谁负责呢?
    总不能说 npm 下载任何包的时候,都要去 npmjs 上面验一下吧。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2548 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 13:18 PVG 21:18 LAX 06:18 JFK 09:18
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86