怎么防止同事用 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 的代码投毒-完整代码

12570 次点击
所在节点    程序员
82 条回复
GopherDaily
2022-08-23 09:50:03 +08:00
刑事诉讼
SunsetShimmer
2022-08-23 09:50:53 +08:00
看起来是只针对这个 Evil.js 项目的解决方法,不具有普适性?下次出现个 Evil.js-1 怎么办?

我个人认为,一个开源项目不具有任何“社会责任”,也不应该期待着开源项目维护者有“责任感”。只要伸手拿了项目,只有您自己才有义务保证自己的产品没问题。
Mithril
2022-08-23 09:53:06 +08:00
为啥要防。。。
不要总想着帮公司法务干活,他们赚的不比码农少。
abc0123xyz
2022-08-23 09:53:56 +08:00
怎么防止同事删库
jazzg62
2022-08-23 09:55:51 +08:00
怎么防止老婆给我下药?
SunsetShimmer
2022-08-23 09:55:59 +08:00
换个角度思考,确保每个引用的第三方库都有使用的理由,随时移除不再使用的 /没有理由的库,固定依赖版本。这算不算更好的办法?
nothingistrue
2022-08-23 09:56:33 +08:00
个人开发不好防,但是同事的话那是团队开发,好防的很,做好单元测试就行了。如果没有单元测试,那你也不用防了,相比于产品给你的坑,Evil.js 投的毒都是小意思。
Bijiabo
2022-08-23 09:57:02 +08:00
这可能更多的是一个非技术问题。

需要考虑的是在什么情况下同事会下毒,没人会无缘无故做出这样的事情,是不是团队太卷、老板太 SB 、做事方式太奇葩。

(深思熟虑之后,最终选择了和同事一起下毒跑路 >_>...
jazzg62
2022-08-23 09:57:29 +08:00
@jazzg62 家贼难防,代码审计很重要!!!
ThreeK
2022-08-23 09:59:06 +08:00
先拿到工期再讨论怎么做。
dx3759
2022-08-23 09:59:21 +08:00
静态代码审查
kidult
2022-08-23 10:00:32 +08:00
吃饱了撑的要来投毒
kikitte
2022-08-23 10:00:58 +08:00
“无产阶级常常分不清敌人经常内斗”
Qy2FbR
2022-08-23 10:01:01 +08:00
你们都不写 unit test 的吗?
ck65
2022-08-23 10:02:30 +08:00
生活和工作在一个互不信任的社会里,悲,难。
Qy2FbR
2022-08-23 10:02:42 +08:00
不搞 code review 的吗?
dongpengfei1
2022-08-23 10:06:08 +08:00
为什么反对投毒,因为会影响到其他同事的合法利益。
lakehylia
2022-08-23 10:12:41 +08:00
技术选型你们不做的吗?选型都不是小罗罗做的,都是大佬做技术选型,小罗罗负责填充代码。这个包根本过不了技术选型的关。
JaguarJack
2022-08-23 10:17:12 +08:00
难道版本控制里面看不到加依赖吗?
roundgis
2022-08-23 10:20:19 +08:00
你是老闆?

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

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

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

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

© 2021 V2EX