V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
lhx888
V2EX  ›  程序员

npm 用淘宝源替换官方源,会不会有资安问题啊?

  •  1
     
  •   lhx888 · 2023-05-27 15:00:01 +08:00 · 7171 次点击
    这是一个创建于 580 天前的主题,其中的信息可能已经有所发展或是发生改变。

    因为你懂得的原因,官方源速度太慢,扶墙流量又要花钱,能省就省吧:-)

    换成淘宝源倒是很快,就是怕源里出来的东西“夹带私货“。有没有这个可能啊?

    70 条回复    2023-05-29 16:03:10 +08:00
    dlsflh
        1
    dlsflh  
       2023-05-27 15:07:13 +08:00 via Android   ❤️ 3
    都用资安了当然有。
    wudicgi
        2
    wudicgi  
       2023-05-27 15:20:39 +08:00   ❤️ 16
    不懂就问,“资安问题”是台湾地区常用的说法吗?
    搜了半天出来的结果没啥简体中文的, Google 翻译出来是 Information security issues
    iqoo
        3
    iqoo  
       2023-05-27 15:28:34 +08:00
    这点流量能省多少,普通的富强流量 1TB 十块钱都不到。
    dfkjgklfdjg
        4
    dfkjgklfdjg  
       2023-05-27 15:34:54 +08:00
    为什么要 “夹带私货” ?
    需要考虑的问题是镜像里面的数据可能有延迟,版本对不上之类的。
    tyzandhr
        5
    tyzandhr  
       2023-05-27 15:46:45 +08:00 via Android   ❤️ 2
    你不会查 md5 吗?
    lhx888
        6
    lhx888  
    OP
       2023-05-27 15:47:35 +08:00
    @wudicgi 您这一提,资安是台湾的说法,经常看相关资讯,不自觉的用上了。。 。。。
    lhx888
        7
    lhx888  
    OP
       2023-05-27 15:52:00 +08:00   ❤️ 1
    @dlsflh 别闹啊大哥,很严肃的在问。也有可能不会有资安问题。如果它像 debian 的 apt 一样,无论从哪里下载的包,都要在本地来签名验证,就不存在第三方镜像和官方镜像不一样的问题。因为修改后会验证不通过进而不安装。

    最多是版本落后于官方,但一定是从官方原版镜像的。因为作了个修改,本地验证就不可能通过。因为本地验证用的证书是官方的。

    其实,我觉得大概率 npm 也是这种验证机制。但不完全确定,就问问啊。
    lhx888
        8
    lhx888  
    OP
       2023-05-27 15:54:49 +08:00
    @iqoo 这是自建的吧,我用的机场的。。。 。。。真的挻贵的。自建我也有,被封了套 cdn 呢,那速度。。。 。。。
    lhx888
        9
    lhx888  
    OP
       2023-05-27 16:00:22 +08:00
    @dfkjgklfdjg 关于为什么要夹带私货,因为搜集信息是有价值的,你看看安卓上那些国产毒瘤,因为安卓版本迭代限制越来越严现在是好一些了,以前简直丧心病狂。虽然我这也没什么怕他注意的,但是本身有些抵触这样的行为 。
    RRRSSS
        10
    RRRSSS  
       2023-05-27 16:05:53 +08:00
    镜像源不放心的话,应该只能自己对比 md5 签名

    我觉得,与其担心镜像源「带毒」,不如担心使用的 npm 包本身是否安全,这几年出了不少事情了。
    lhx888
        11
    lhx888  
    OP
       2023-05-27 16:09:01 +08:00
    @t
    @RRRSSS 明白了,谢谢您的回复。
    dawei211
        12
    dawei211  
       2023-05-27 16:13:01 +08:00
    @lhx888 思考些其他的更有价值.
    xmumiffy
        13
    xmumiffy  
       2023-05-27 16:14:10 +08:00 via Android
    @lhx888 9 元 4T 的机场也有,能到 300Mbps
    totoro52
        14
    totoro52  
       2023-05-27 16:16:09 +08:00   ❤️ 5
    镜像都是校队 MD5 的,你改了包 MD5 就对应不上了,你这被害妄想症太严重了
    另外 NPM 仓库鱼龙混杂,上次就有个美国人在上面投了一堆,桌面都会多一个 txt ,NPM 仓库也是挖矿病毒的重灾之地,与其担心被夹带私活,不如多关心一下自己都导入哪些依赖,是否有大厂靠背等
    https://juejin.cn/post/7075510289189322759
    lhx888
        15
    lhx888  
    OP
       2023-05-27 16:17:21 +08:00
    @dawei211 思考了,那就是我需要好好的学一下英语,因为查官方文档一定能得到答案,可惜英语不过关
    dfkjgklfdjg
        16
    dfkjgklfdjg  
       2023-05-27 16:21:49 +08:00
    @lhx888 #9 ,收集信息并不是夹带私货吧,收集信息你是没办法感知的,就算镜像源不收集你信息运营商之类的也可以收集你信息去坐,真的要担心这个真的不如肉身翻墙。
    如果是真·夹带私货,在包内给你做小动作吗。就是自断后路了谁还会用。与其怀疑这种公益项目,不如找一个你认为靠谱的镜像去做赞助。

    -----
    另外现在直连 npm 官方源也不会很慢,我都懒得换源了,直接用官方源。特别是之前遇到过镜像源版本落后编译失败的情况。
    lhx888
        17
    lhx888  
    OP
       2023-05-27 16:23:56 +08:00
    @totoro52 您说的有道理,学到了。校对 md5 是默认打开,安装软件的时候 npm 主动进行的吗?打比方,npm install 一些东西,不需要我人工进行校对,电脑自己就把这事做了。
    dawei211
        18
    dawei211  
       2023-05-27 16:26:48 +08:00
    @lhx888 软件这东西,信任边界很重要,信任边界太窄,害人害己
    magicdawn
        19
    magicdawn  
       2023-05-27 16:30:35 +08:00 via Android
    上次有个包篡改 Onedrive 文件夹
    lhx888
        20
    lhx888  
    OP
       2023-05-27 16:34:09 +08:00
    @dfkjgklfdjg 夹带一私货就是进行修改加后门等别人安装,安装之后就有了后门,然后就可就通过这个后门对设备进行控制,或者主动上传信息啊。
    收集信息不是无法感知,而是不容易感知,对文件 IO 监测,流量监测,也能发现点蛛丝马迹。
    肉身翻墙太难了,希望你说的不是走线哈哈。
    lhx888
        21
    lhx888  
    OP
       2023-05-27 16:37:23 +08:00
    @dawei211 您说的对,国产的一些软件,有些不得不用,比如大厂的即时通讯和移动支付,google play 有我就安 play 版的,没有就 shelter 沙盒里运行。 信任边界窄 真的是害人也害已,因为在乎的人需要付出一些成本,才能放弃或使用到那些软件的功能。
    ysc3839
        22
    ysc3839  
       2023-05-27 16:38:01 +08:00 via Android   ❤️ 1
    当然有可能,没记错的话 npm 的源是没有额外校验途径的,服务器返回啥就是啥。
    lhx888
        23
    lhx888  
    OP
       2023-05-27 16:40:37 +08:00
    @magicdawn 那也许会有,之前不是坐实什么讯公司的游戏会扫 firefox 的访问历史记录吗。新闻可以搜到的。 这不是很离谱的行为吗?一个游戏为什么想知道我访问了哪些网站。。。 。。。 后来闹大了,x 讯公司的解释是反外挂。。。 。。。真的无法相信它的解释
    lhx888
        24
    lhx888  
    OP
       2023-05-27 16:43:58 +08:00
    @ysc3839 如果 npm 不会主动校验,那开梯子好了。信任没有绝对,只能选择相信相对可信的。
    SP00F
        25
    SP00F  
       2023-05-27 16:55:08 +08:00
    资安是啥?????
    上 NPM 的包还有投毒呢
    otakustay
        26
    otakustay  
       2023-05-27 16:58:33 +08:00   ❤️ 1
    npm 只会在 lock 文件中留第一次安装时的镜像对应的 hash ,后续切换镜像安装 hash 对不上会失败。但如果第一次就是淘宝源(极端假设它是不可信的),那么你本的存的 hash 就是错的,无法发现安全问题
    bthulu
        27
    bthulu  
       2023-05-27 17:11:23 +08:00
    @lhx888 没用的. 校对用到的 md5 数据, 也是存在淘宝源里的. 如果包都给你改了, 难道会傻到不去改一下 md5 数据么?
    uni
        28
    uni  
       2023-05-27 17:22:53 +08:00
    我也担心 pip 或者 npm 的包直接把我小狐狸存私钥的文件给上传了。。。
    yunyuyuan
        29
    yunyuyuan  
       2023-05-27 17:41:10 +08:00
    好像 package-lock.json 就是干这事的吧。实在不放心,就在首次开发的时候挂代理用 npmjs.org 的源下载依赖并保存 lock 文件,后续换别的源如果 sha 对不上,npm i 会报错的,就能发现是源有问题
    lyhiving
        30
    lyhiving  
       2023-05-27 17:49:22 +08:00
    这个问题你看下腾讯的会不会用淘宝源就知道了呀
    estk
        31
    estk  
       2023-05-27 18:10:40 +08:00 via iPhone
    反正我是不敢用过没源,坑多
    placeholder
        32
    placeholder  
       2023-05-27 18:21:40 +08:00
    既然担心那就别换,直接设置 npm 的 proxy 不就好了。

    你需要下的 npm 包那么多,你如何保证 npm 里下的包就一定不会夹带私货呢?
    CLMan
        33
    CLMan  
       2023-05-27 18:40:23 +08:00   ❤️ 8
    所以前面一大堆回复都没人查官方文档吗,还是周末大佬不是加班就出去玩了,v2 的平均技术在我眼中断崖式下跌。。。

    楼主考虑的是代理 /镜像导致的中间人攻击问题,npm 使用的是类似 debian 之类的软件包签名来解决的:

    Signing and verifying published packages protects against an attacker controlling a registry mirror or proxy where they attempt to intercept and tamper with the package tarball content.

    链接:
    https://docs.npmjs.com/about-registry-signatures
    https://docs.npmjs.com/verifying-registry-signatures

    要了解实现细节,比如默认是否验证签名,验证签名失败会怎么样(会不会依然允许安装,会不会被用户忽视),是否存在例外情况等等,需要读 npm 的源码,反正是开源的。
    Mooon
        34
    Mooon  
       2023-05-27 19:14:10 +08:00
    有两种说法,分别是:

    除了敌人就是朋友

    除了朋友都是敌人

    很显然信息安全里面我们应该遵循后者

    然后怎么判断是敌人还是朋友,这就很简单了

    只要有任何不可信任的背景,那就不能当做朋友

    既然不是朋友,那么就只能是敌人
    woshipanghu
        35
    woshipanghu  
       2023-05-27 19:44:52 +08:00
    免费提供的一个便利的产品 竟然还要揣测别人不坏好意 你的心真的坏
    harrozze
        36
    harrozze  
       2023-05-27 19:51:20 +08:00
    @totoro52 #14 改完以后也可以重新生成 md5 ,因为 md5 也是从镜像站拿来的。。。
    Mooon
        37
    Mooon  
       2023-05-27 20:42:19 +08:00
    @woshipanghu

    你不去百度公关部门上班真是可惜了

    「李彦宏给你免费用搜索引擎,你还揣测别人偷你隐私,你的心真坏」
    lhx888
        38
    lhx888  
    OP
       2023-05-27 21:04:46 +08:00
    @woshipanghu 你的逻辑 1:免费的就一定是好心的,所以不需要质疑。逻辑 2:免费的就不可以质疑,质疑就是坏。。。 。。。
    leonshaw
        39
    leonshaw  
       2023-05-27 21:18:26 +08:00
    @CLMan 想起了那篇 Reflections on Trusting Trust
    br9852000
        40
    br9852000  
       2023-05-27 21:50:42 +08:00
    国内产品都不可靠都有问题,最好中文能不用就不用。殖人,还是应润尽润吧!待着国内太不安全了。
    Ricciardo
        41
    Ricciardo  
       2023-05-27 22:09:00 +08:00
    @wudicgi 大陆北方网友
    CLMan
        42
    CLMan  
       2023-05-27 22:13:58 +08:00   ❤️ 1
    @lhx888 粗略的看了一下,npm 注册表镜像的安全性是远远不如 debian 镜像仓库:

    - npm 使用 `npm audit`进行包的签名检查,使用私钥签名,公钥检查,但似乎没使用证书体系(有待确认)
    - npm 注册表允许私有签名(有待确认),但镜像默认不提供公钥,所以审查失败
    - 执行`npm install`会触发`npm audit`,但是审查错误信息会被静默掉(只有在日志级别为 verbose 显示),不影响安装流程,直接执行`npm audit`会正常显示审查错误信息
    - npmmirrors 官方推荐全局安装`cnpm`替代`npm`
    Yadomin
        43
    Yadomin  
       2023-05-27 22:25:28 +08:00
    说到这个,pypi 前两天把 pgp 签名支持去了,理由是没人用🤣
    https://blog.pypi.org/posts/2023-05-23-removing-pgp/
    Cu635
        44
    Cu635  
       2023-05-27 22:36:55 +08:00
    @xmumiffy #13
    这是哪家?

    @totoro52 #14
    你应该说“xxx 镜像都是校对 md5/sha1/xxxxxx”的,因为有些就是没有校对机制。
    scxiazi
        45
    scxiazi  
       2023-05-27 22:40:32 +08:00   ❤️ 1
    你好 会的. 阿里的 maven 仓库就把 maven 的几个插件给夹带私货了, 每次编译的时候都输出阿里云的广告
    Yadomin
        46
    Yadomin  
       2023-05-27 22:42:05 +08:00   ❤️ 1
    有一说一被 npm 上乱七八糟的库害的概率比被 npmmirror 害的概率大多了,后者没有现成的案例,而前者的案例一抓一大把,比如著名的 node-ipc 时间
    scxiazi
        47
    scxiazi  
       2023-05-27 22:45:59 +08:00   ❤️ 4
    shijingshijing
        48
    shijingshijing  
       2023-05-27 23:26:53 +08:00
    资安不一定是弯弯用的,很多国内的开发人员,特别是做硬件相关的,经常和弯弯工程师讨论,连打字都是用的繁体,一时切换不过来也正常。不过楼主回复中多次用到您,嘿嘿,感觉暴露了。
    dfkjgklfdjg
        49
    dfkjgklfdjg  
       2023-05-28 00:03:55 +08:00
    @lhx888 #20 ,可以通过你发起的请求来进行数据分析,这个你是无法感知的。通过客户端的后门实在太低级了,而且太容易暴雷了。肉身翻墙很容易,只要你有够钱也过了语言关,有大把的机会移民出去。走线?走线是正常人会考虑的方式吗?

    我上面也提到了,如果觉得淘宝镜像有问题,就找到一个你认为靠谱的镜像源,然后有条件的话就多赞助。这才是实实在在的。
    提出问题、解决问题,而不是光抱怨,减少没有必要的顾虑,生活更加乐观一点。
    Stoney
        50
    Stoney  
       2023-05-28 00:53:52 +08:00 via iPhone
    @SP00F 资讯安全
    Al0rid4l
        51
    Al0rid4l  
       2023-05-28 05:57:35 +08:00
    这年头用您也是弯弯了...不禁想起了名侦探沈逸: 有点意思

    SP00F
        52
    SP00F  
       2023-05-28 07:01:06 +08:00
    @Stoney #50 资讯安全是第一次听说……

    如果要使用到开源库就无法避免安全问题的,没有模仿投毒也有官方投毒,官方不投毒,也有夹杂私货的。

    用起来自己觉得 OK 或者本身公司就有安全部门审计就不用太过担心。
    FozillaMox
        53
    FozillaMox  
       2023-05-28 08:37:55 +08:00
    实在太过奇妙深刻,再挂。

    alfchin
        54
    alfchin  
       2023-05-28 08:47:17 +08:00 via Android
    @dfkjgklfdjg 不要把黑客想得太简单。最近几年供应链攻击已经出现了多起,并且影响了很多大厂
    gitjavascript
        55
    gitjavascript  
       2023-05-28 09:12:30 +08:00
    你这么一说,官网的也有问题啊
    albert0yyyy
        56
    albert0yyyy  
       2023-05-28 09:34:55 +08:00
    @woshipanghu 不是,这肯定是反串黑。。。不会真有人认真反驳吧
    houshuu
        57
    houshuu  
       2023-05-28 10:23:54 +08:00
    当然有这个风险,只是淘宝毕竟体量大,相当于信用背书了。
    大部分大厂都有自己的内部 npm 源,在导入到内部源的时候会运行代码安全性检查。
    程序员自己的话跟着公司政策走就行。
    harrozze
        58
    harrozze  
       2023-05-28 11:12:07 +08:00
    还不放心的话,你可以找台国外的服务器自己做源,或者做代理
    3144838718
        59
    3144838718  
       2023-05-28 11:21:58 +08:00
    你一说安全我就想笑。
    woshipanghu
        60
    woshipanghu  
       2023-05-28 16:08:56 +08:00
    @lhx888 当然可以质疑 你这不是质疑 你是直接泼脏水了
    woshipanghu
        61
    woshipanghu  
       2023-05-28 16:09:32 +08:00
    @Mooon 百度免费 你可真是大聪明
    a632079
        62
    a632079  
       2023-05-28 17:12:14 +08:00
    我记得现在的 pnpm ,yarn 都是校验 sha256 的。npm 默认的行为不知道是不是 sha256 ,但就算不是,也有基于 sha1 ,md5 的包校验。
    楼主可以观察下 package-lock.json yarn.lock pnpm-lock.yaml 里面的结构。

    当然,包这没有 GPG 签名啥的,所以中央源可以通过一些手段修改包的一些信息,比如说替代一个版本~
    对于这种情况,可能只有楼主写一个工具脚本,定期针对你的 lockfile 做校验=,=
    wdssmq
        63
    wdssmq  
       2023-05-28 17:15:19 +08:00
    只能说概率上,npm 包本身带料的可能性都大于淘宝搬运时加东西 - -
    phithon
        64
    phithon  
       2023-05-28 17:40:24 +08:00   ❤️ 1
    台湾人用大陆的镜像,是有一定风险的
    Mooon
        65
    Mooon  
       2023-05-28 19:59:23 +08:00
    @woshipanghu

    来,你来教育一下大家,普通搜索业务,百度什么时候不是免费了

    条理清晰地说清楚,我发 1000 块钱红包给你

    说不明白,你给大家发 100 块钱红包

    这么简单的事情,应该五分钟就说的清楚吧

    五分钟赚 1000 块钱,换算一下应该怎么都不会比你平均时新低吧

    ——————————————————

    另外也也欢迎有朋友可以作为第三方的见证人参与进来,我可以先把赌注的 1000 块钱转过去
    bianhui
        66
    bianhui  
       2023-05-29 08:23:06 +08:00
    台湾没有镜像源?
    siuis
        67
    siuis  
       2023-05-29 11:03:00 +08:00
    会,淘宝会修改他们镜像里的包的代码。以前用他们 Maven 仓库的时候发现过。
    siuis
        68
    siuis  
       2023-05-29 11:10:07 +08:00
    @dfkjgklfdjg 阿里那群蠢货夹带私活不是一次两次的事情了,之前 Ant-Design 圣诞节彩蛋就被喷过,阿里 Maven 仓库提供的 maven-compiler-plugin 也被修改代码夹带了阿里的广告。
    lhx888
        69
    lhx888  
    OP
       2023-05-29 12:32:06 +08:00
    @Mooon 不必回应 @woshipanghu ,如果他同意自己的观点,这样的奇人我等只有参观与猎奇的份,思维不在一个维度上不需要反驳。如果他不认同自己的观点,仍然维护它,就是有目的的。他的方法就是抛出谬论附带人身攻击,把讨论环境搅和的乌烟瘴气。非蠢即坏,何必搭理。再一个我想起一句话:“看头像,知成份”
    Mooon
        70
    Mooon  
       2023-05-29 16:03:10 +08:00
    @lhx888 谢谢朋友开导
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   932 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 22:24 · PVG 06:24 · LAX 14:24 · JFK 17:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.