怎么防止同事用 Evil.js 的代码投毒

2022-08-23 09:40:24 +08:00
 woniuppp

怎么防止同事用 Evil.js 的代码投毒-视频版 B 站

最近Evil.js被讨论的很多,项目介绍如下

项目被发布到 npm 上后,引起了激烈的讨论,最终因为安全问题被 npm 官方移除,代码也闭源了

作为一个前端老司机,我肯定是反对这种行为,泄私愤有很多种方式,代码里下毒会被 git log 查到,万一违法了,还不如离职的时候给老板一个大逼兜来的解恨

今天我们来讨论一下,如果你作为项目的负责人,如何甄别这种代码下毒

  1. 检测函数的 toString
  2. iframe
  3. node 的 vm
  4. ShadowRealm api
  5. Object.freeze
  6. 备份检测

怎么防止同事用 Evil.js 的代码投毒-视频版 B 站

怎么防止同事用 Evil.js 的代码投毒-完整代码

12288 次点击
所在节点    程序员
82 条回复
woniuppp
2022-08-23 10:45:04 +08:00
@shanyuhai123 大部分项目 git 都没有 gpg 验证的,提交记录可以伪造的
woniuppp
2022-08-23 10:45:25 +08:00
@sherryqueen 有刑法也不耽误自己装防盗门的
PerFectTime
2022-08-23 10:49:35 +08:00
写一个 Unevil.js 覆盖所有原型链
Felldeadbird
2022-08-23 10:49:58 +08:00
git log 一查就知道谁引入包了。

所以这种项目除了炫技和泄愤,完全感觉不到投毒水平在哪?

真正要给代码投毒,只需要在交易逻辑上写一个 弱智 BUG 就可以了。

let subtotal;

if(subtotal = pay.total ){
xhr ....
}

这种逻辑 BUG ,只要公司没代码自动审查,没单元测试,没自动化。写得隐蔽点,夹在开发中。等某天引爆。
yy77
2022-08-23 10:50:48 +08:00
对引入包进行审计。即一般的程序员不能在网上看到某个包觉得好用就引入,需要进行审计之后再引入。

可是真要投毒,不用引入整个包,在某个 util 库里写上一段更难查到。
GP1
2022-08-23 10:51:24 +08:00
你那么怕是不是平时压榨剥削员工有一手,导致自己心里有鬼?正常人谁愿意这样恶心人?
woniuppp
2022-08-23 10:55:15 +08:00
@GP1 包作者不是我啊 兄弟
MoYi123
2022-08-23 11:04:05 +08:00
这种毒还要引第三方库? 自己造的 bug 不比这多?
soulmine
2022-08-23 11:10:01 +08:00
谁引发的问题谁负责 为啥要管呢
darknoll
2022-08-23 11:15:40 +08:00
老板亲自发帖?
palxie
2022-08-23 11:17:57 +08:00
如果你是老板, 确实是你该考虑, 如果你真的只是同事, 那我觉得你戏有点多.
rbq123456
2022-08-23 11:22:35 +08:00
为啥要引入这样的包呢,这引入一看 package.json 就知道了。真想投毒就自己偷偷写点不就好了,这毒代码又不复杂,一问就是没注意看,再问就是百度复制的代码
liuzhedash
2022-08-23 11:24:10 +08:00
谁是我们的敌人,谁是我们的朋友?
deng81416754
2022-08-23 11:25:57 +08:00
我看刑,你们觉得型吗
vazo
2022-08-23 11:26:29 +08:00
我就不信大伙热爱这个团队会主动投毒.有些问题看起来是技术问题其实是管理问题.
NoString
2022-08-23 11:35:03 +08:00
我的评价是就这就这 还不如我自己写的 bug 厉害
zr8657
2022-08-23 11:36:06 +08:00
我觉得全世界的无产阶级是不可能团结起来的,可悲
dianso
2022-08-23 11:48:29 +08:00
一个 40 多岁的初中生写的,抱怨社会不公。
kenvix
2022-08-23 11:57:45 +08:00
@kikitte 你先别假定他是无产阶级
liuzhaowei55
2022-08-23 12:15:34 +08:00
一架飞机上不会有两个人同时携带炸弹,同理一个项目里不会有两个人同时下毒,所以只要你先下手,就可以杜绝同事下毒了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/874717

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX