最近Evil.js
被讨论的很多,项目介绍如下
项目被发布到 npm 上后,引起了激烈的讨论,最终因为安全问题被 npm 官方移除,代码也闭源了
作为一个前端老司机,我肯定是反对这种行为,泄私愤有很多种方式,代码里下毒会被 git log 查到,万一违法了,还不如离职的时候给老板一个大逼兜来的解恨
今天我们来讨论一下,如果你作为项目的负责人,如何甄别这种代码下毒
1 GopherDaily 2022-08-23 09:50:03 +08:00 ![]() 刑事诉讼 |
![]() | 2 SunsetShimmer 2022-08-23 09:50:53 +08:00 ![]() 看起来是只针对这个 Evil.js 项目的解决方法,不具有普适性?下次出现个 Evil.js-1 怎么办? 我个人认为,一个开源项目不具有任何“社会责任”,也不应该期待着开源项目维护者有“责任感”。只要伸手拿了项目,只有您自己才有义务保证自己的产品没问题。 |
3 Mithril 2022-08-23 09:53:06 +08:00 ![]() 为啥要防。。。 不要总想着帮公司法务干活,他们赚的不比码农少。 |
![]() | 4 abc0123xyz 2022-08-23 09:53:56 +08:00 怎么防止同事删库 |
![]() | 5 jazzg62 2022-08-23 09:55:51 +08:00 怎么防止老婆给我下药? |
![]() | 6 SunsetShimmer 2022-08-23 09:55:59 +08:00 ![]() 换个角度思考,确保每个引用的第三方库都有使用的理由,随时移除不再使用的 /没有理由的库,固定依赖版本。这算不算更好的办法? |
7 nothingistrue 2022-08-23 09:56:33 +08:00 个人开发不好防,但是同事的话那是团队开发,好防的很,做好单元测试就行了。如果没有单元测试,那你也不用防了,相比于产品给你的坑,Evil.js 投的毒都是小意思。 |
![]() | 8 Bijiabo 2022-08-23 09:57:02 +08:00 ![]() 这可能更多的是一个非技术问题。 需要考虑的是在什么情况下同事会下毒,没人会无缘无故做出这样的事情,是不是团队太卷、老板太 SB 、做事方式太奇葩。 (深思熟虑之后,最终选择了和同事一起下毒跑路 >_>... |
![]() | 10 ThreeK 2022-08-23 09:59:06 +08:00 先拿到工期再讨论怎么做。 |
![]() | 11 dx3759 2022-08-23 09:59:21 +08:00 静态代码审查 |
![]() | 12 kidult 2022-08-23 10:00:32 +08:00 吃饱了撑的要来投毒 |
13 kikitte 2022-08-23 10:00:58 +08:00 ![]() “无产阶级常常分不清敌人经常内斗” |
14 Qy2FbR 2022-08-23 10:01:01 +08:00 via Android 你们都不写 unit test 的吗? |
![]() | 15 mogita 2022-08-23 10:02:30 +08:00 via iPhone 生活和工作在一个互不信任的社会里,悲,难。 |
16 Qy2FbR 2022-08-23 10:02:42 +08:00 via Android 不搞 code review 的吗? |
17 dongpengfei1 2022-08-23 10:06:08 +08:00 为什么反对投毒,因为会影响到其他同事的合法利益。 |
![]() | 18 lakehylia 2022-08-23 10:12:41 +08:00 技术选型你们不做的吗?选型都不是小罗罗做的,都是大佬做技术选型,小罗罗负责填充代码。这个包根本过不了技术选型的关。 |
![]() | 19 akagishigeru 2022-08-23 10:17:12 +08:00 难道版本控制里面看不到加依赖吗? |
20 roundgis 2022-08-23 10:20:19 +08:00 via Android 你是老? |
![]() | 21 tkHello 2022-08-23 10:20:21 +08:00 暴风雨只会来的更猛烈 |
![]() | 22 rxswift 2022-08-23 10:22:41 +08:00 让公司对员工好一点可解 |
![]() | 23 v2ka 2022-08-23 10:23:14 +08:00 都是成年人,为自己的行为负责就好了。 别人要做小偷,要搞打砸抢烧,你防着有用吗? 不是有公安,有法院,有版房吗? 社会会合理分流,让合适的人呆到合适的地方就行了。 不用你操那么大的心。 |
24 shanyuhai123 2022-08-23 10:23:41 +08:00 为了推广而发的帖子,散了吧。 git 、svn 等代码管理工具有你提交记录,一抓一个准。 |
![]() | 25 Mark24 2022-08-23 10:23:51 +08:00 营造好的用工环境,哄好打工人。 丧失信任之后,防你能防得住么?不如日行一善来的靠谱。 |
![]() | 27 cheng6563 2022-08-23 10:26:27 +08:00 git 如不开 gpg 验证的话完全可以伪造提交作者 |
![]() | 28 fanxasy 2022-08-23 10:26:48 +08:00 应该大力推广,因为代码投毒总比物理投毒好。同理我们应该大力发展色情产业( |
![]() | 29 tianyou666shen 2022-08-23 10:30:36 +08:00 关键字 同事 投毒 我以为你想说游族老板林奇呢 只要不往我杯子里投毒,其他您随意.(毕竟您都要和公司鱼死网破了) |
30 sherryqueen 2022-08-23 10:31:09 +08:00 我国有一套完整的刑法 |
![]() | 31 zhaokun 2022-08-23 10:33:08 +08:00 代码检测还不如多关注项目组员工的状态 |
![]() | 33 fournoas 2022-08-23 10:36:15 +08:00 代码投毒小把戏而已,当年 Ken Thompson 是往 C 编译器里留后门。还不如考虑下怎么魔改项目构建工具吧 |
![]() | 34 woniuppp OP @GopherDaily 是这样的 |
![]() | 35 woniuppp OP @SunsetShimmer 锁版本就是更好的办法 |
![]() | 38 woniuppp OP @shanyuhai123 好的 |
![]() | 41 woniuppp OP @shanyuhai123 大部分项目 git 都没有 gpg 验证的,提交记录可以伪造的 |
![]() | 42 woniuppp OP @sherryqueen 有刑法也不耽误自己装防盗门的 |
43 PerFectTime 2022-08-23 10:49:35 +08:00 写一个 Unevil.js 覆盖所有原型链 |
![]() | 44 Felldeadbird 2022-08-23 10:49:58 +08:00 git log 一查就知道谁引入包了。 所以这种项目除了炫技和泄愤,完全感觉不到投毒水平在哪? 真正要给代码投毒,只需要在交易逻辑上写一个 弱智 BUG 就可以了。 let subtotal; if(subtotal = pay.total ){ xhr .... } 这种逻辑 BUG ,只要公司没代码自动审查,没单元测试,没自动化。写得隐蔽点,夹在开发中。等某天引爆。 |
![]() | 45 yy77 2022-08-23 10:50:48 +08:00 对引入包进行审计。即一般的程序员不能在网上看到某个包觉得好用就引入,需要进行审计之后再引入。 可是真要投毒,不用引入整个包,在某个 util 库里写上一段更难查到。 |
46 GP1 2022-08-23 10:51:24 +08:00 你那么怕是不是平时压榨剥削员工有一手,导致自己心里有鬼?正常人谁愿意这样恶心人? |
![]() | 48 MoYi123 2022-08-23 11:04:05 +08:00 ![]() 这种毒还要引第三方库? 自己造的 bug 不比这多? |
![]() | 49 soulmine 2022-08-23 11:10:01 +08:00 谁引发的问题谁负责 为啥要管呢 |
50 darknoll 2022-08-23 11:15:40 +08:00 老板亲自发帖? |
51 palxie 2022-08-23 11:17:57 +08:00 ![]() 如果你是老板, 确实是你该考虑, 如果你真的只是同事, 那我觉得你戏有点多. |
52 rbq123456 2022-08-23 11:22:35 +08:00 为啥要引入这样的包呢,这引入一看 package.json 就知道了。真想投毒就自己偷偷写点不就好了,这毒代码又不复杂,一问就是没注意看,再问就是百度复制的代码 |
![]() | 53 liuzhedash 2022-08-23 11:24:10 +08:00 谁是我们的敌人,谁是我们的朋友? |
54 deng81416754 2022-08-23 11:25:57 +08:00 我看刑,你们觉得型吗 |
![]() | 55 vazo 2022-08-23 11:26:29 +08:00 我就不信大伙热爱这个团队会主动投毒.有些问题看起来是技术问题其实是管理问题. |
![]() | 56 NoString 2022-08-23 11:35:03 +08:00 我的评价是就这就这 还不如我自己写的 bug 厉害 |
57 zr8657 2022-08-23 11:36:06 +08:00 ![]() 我觉得全世界的无产阶级是不可能团结起来的,可悲 |
![]() | 58 dianso 2022-08-23 11:48:29 +08:00 一个 40 多岁的初中生写的,抱怨社会不公。 |
![]() | 60 liuzhaowei55 2022-08-23 12:15:34 +08:00 via iPhone 一架飞机上不会有两个人同时携带炸弹,同理一个项目里不会有两个人同时下毒,所以只要你先下手,就可以杜绝同事下毒了。 |
![]() | 61 WOLFRAZOR 2022-08-23 12:58:27 +08:00 刑啊!到时候看谁先进哈哈哈哈哈 |
62 clrss 2022-08-23 13:30:56 +08:00 虚假的投毒: Evil.js 真正的投毒: goto fail; goto fail; |
![]() | 63 PendingOni 2022-08-23 14:28:54 +08:00 我觉得还是 DDoS 脚本小子比较刑 |
66 tairan2006 2022-08-23 15:15:04 +08:00 ![]() 我劝你少管闲事 |
67 piloots 2022-08-23 15:42:34 +08:00 真刑。太刑,决定刑。无期刑,直至死刑。 |
68 set01 2022-08-23 16:21:25 +08:00 ![]() 楼主换个标题就没这么多乱七八糟的回复了 怎么防止同事用 Evil.js 的代码给我的代码里投毒,影响我下班 |
69 belowfrog 2022-08-23 17:38:46 +08:00 是供应链投毒的问题,看看 https://github.com/LavaMoat/LavaMoat ,metamask 用的文案 |
![]() | 70 manami 2022-08-23 17:39:29 +08:00 还不如专门用有漏洞的包,攻击交给别人去做 |
71 Qy2FbR 2022-08-23 19:04:54 +08:00 via Android @woniuppp 啥你们用公司里没有的包都不用过 security/risk/compliance? |
![]() | 72 luomu24 2022-08-23 21:28:04 +08:00 每次看到你们这么精力十足折腾,我就觉得我不适合这行。 |
![]() | 73 AhECbt 2022-08-23 21:35:11 +08:00 还有比 rm -rf /* 更毒的?目前没发现呐。 |
![]() | 74 Aixtuz 2022-08-23 23:27:50 +08:00 相对于 “如何对付变成敌人的队友?” 更重要的不该是 “如何避免队友变成敌人么?” 如果不是把队友逼急了,人家至于投毒么... 没有理由就是要投的人,有很多么? |
75 abuabu 2022-08-24 00:29:28 +08:00 上一贴:怎么给代码下毒 这一贴:怎么防止同事下毒 下一贴:怎么防止和 v2er 做同事 |
![]() | 76 lopssh 2022-08-24 07:20:16 +08:00 via Android 太秀了吧这个 |
77 hervey0424 2022-08-24 07:48:22 +08:00 根本不需要, 让他们正常写就和投毒一样了 |
![]() | 78 mingl0280 2022-08-24 09:10:35 +08:00 信任问题不要怪代码。 钱和福利都不给够还要唧唧歪歪同事的敌意工作环境是非常容易催生极端思想的。 |
80 ada87 2022-08-24 15:40:10 +08:00 Javascript 感觉没什么技术含量,不用三方自己都能投。 在此请教下 Java 有无此类包,或者实现方法,比如改下 java.lang.String 里面的一些输出? |
81 realJamespond 2022-08-24 15:51:37 +08:00 用微前端沙箱隔离, 有问题也只是他那块的问题不影响其他人的模块 最简单的办法就是加工资~~ |
![]() | 82 woniuppp OP @realJamespond +1 |