首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

视频移步B站最近Evil.js被讨论的很多,项目介绍如下图片项目被发布到npm上后,引起了激烈的讨论,最终因为安全问题被npm官方移除,代码也闭源了作为一个前端老司机,我肯定是反对这种行为,泄私愤有很多种方式...,比如evil.js中,给JSON.stringify下毒了,把里面的I换成了l ,每周日prmise的then方法有10%的概率不触发,只有周日能触发着实有点损了, 并且npm的报名就叫lodash-utils...模块node中也可以通过vm模块创建一个沙箱来运行代码,教程可以看这里,不过这对我们代码的入侵性太大了,适用于发现bug后的调试某段具体的代码,并且没法再浏览器里直接用const vm = require...api,已经stage3了,可以手动创建一个隔离的js运行环境,被认为是下一代微前端的利器,不过现在兼容性还不太好,代码看起来有一丢丢像eval,不过和vm的问题一样,需要我们指定某段代码执行更多ShadowRealm...(`JSON.stringify({name:'Illl'})`) )Object.freeze我们还可以项目代码的入口处,直接用Object.freeze冻住相关函数,确保不会被修改, 所以下面的代码会打印出

3.7K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

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

    最近Evil.js被讨论的很多,项目介绍如下项目被发布到npm上后,引起了激烈的讨论,最终因为安全问题被npm官方移除,代码也闭源了作为一个前端老司机,我肯定是反对这种行为,泄私愤有很多种方式,代码里下毒会被...,比如evil.js中,给JSON.stringify下毒了,把里面的I换成了l ,每周日prmise的then方法有10%的概率不触发,只有周日能触发着实有点损了, 并且npm的报名就叫lodash-utils...模块node中也可以通过vm模块创建一个沙箱来运行代码,教程可以看这里,不过这对我们代码的入侵性太大了,适用于发现bug后的调试某段具体的代码,并且没法再浏览器里直接用const vm = require...api,已经stage3了,可以手动创建一个隔离的js运行环境,被认为是下一代微前端的利器,不过现在兼容性还不太好,代码看起来有一丢丢像eval,不过和vm的问题一样,需要我们指定某段代码执行更多ShadowRealm...(`JSON.stringify({name:'Illl'})`) )复制代码Object.freeze我们还可以项目代码的入口处,直接用Object.freeze冻住相关函数,确保不会被修改, 所以下面的代码会打印出

    3.1K20

    十亿行大数据挑战——用Java快速聚合文本文件中的10亿行的有趣探索

    1️⃣️ 一亿行挑战 状态 1月1日:此挑战已开放提交! 一亿行挑战(1BRC)是一项有趣的探索,旨在了解现代Java在从文本文件中聚合十亿行数据方面的极限。...拿起你的(虚拟)线程,使用SIMD,优化你的GC,或者尝试其他任何技巧,创建解决此任务的最快实现! 文本文件包含了一系列气象站的温度值。...尽情优化: 调整CalculateAverage程序以加快速度,你可以随意适合的方式(只需遵守下面描述的几条规则)。...•调整该脚本,使其引用你的实现类名。如有需要,通过脚本中的JAVA_OPTS变量提供任何JVM参数。•OpenJDK 21是默认的。...例如,看看DuckDB在这个任务中的表现将会很有趣。 问:我有一个实现——但它不是用Java写的。我可以在哪里分享它?

    1.1K10

    用 Node.js 的 16 行代码创建一个简单的天气 App

    本教程的范围 ? 欢迎!这是多篇教程中的第一篇文章! 在本教程中,您将学习如何调 用 OpenWeatherMap.org API 并把结果输出到控制台。...如果这样的项目你感兴趣并且你也在寻找 Node 更深入的教程请查看另一篇文章 Top Three Node.js courses 第一步:OpenWeatherMap ?...我们用以下代码转换: let weather = JSON.parse(body) 现在我们有了 JavaScript 对象,我们可以用点或括号符号来访问对象中的数据。...如下: let city = argv.c || 'portland'; 运行程序: node index.js 我们需要传递一个名为 c 的变量,如下所示 node index.js -c Boston...因为我们将变量设置为字母 c,所以我们用 c 传递变量。c 后面可以跟任何我们想要的城市名称!

    2.1K30

    看看 Nest.js 怎么用的

    JS 代码在 es6 中加入了 class 的支持,TS 又实现了 interface 和 abstract class 的语法,现在写面向对象的代码容易了很多,所以使用设计模式也就方便了很多。...如果不知道怎么用的话,不妨来看下 Nest.js 是怎么用的吧: 案例 1 Nest.js 除了支持跑一个单独的 http 服务之外,还支持微服务,微服务一般就不是直接处理 http 了,可能是和 Redis...各种不同中间件的客户端连接方式不同,而 Nest.js 希望把它们统一管理起来。 怎么统一管理呢?...案例 2 Nest.js 其实本身并不处理 http 协议,处理 http 是依赖更底层的 Express 实现的,但是它又不想和 Express 强耦合。 怎么办呢?...之后 ExpressAdapter 继承了 AbstractHttpAdapter,基于 Express 的 api 提供了这些方法的实现: 这样比起直接用 Express 的 api 有什么好处呢?

    1.5K40

    面试官:怎么删除 HashMap 中的元素?我一行代码搞定,赶紧拿去用!

    前些天,栈长给大家分享了两篇有意思的文章: 带了一个 3 年的开发,不会循环删除 List 中的元素,我简直崩溃!! 面试官:怎么去除 List 中的重复元素?我一行代码搞定,赶紧拿去用!...PS: 这仅是我个人掌握的实现方案,不一定全,也不一定是最优的,欢迎大家分享,杠精勿扰。...ConcurrentHashMap 在各版本中都使用了最优的锁设计方案,它的并发性能也是非常优异的。...filter 方法进行过滤,这个方法也十分简单,一行代码搞定。...欢迎留言分享~ 最后,留个话题: 上面的种种方法虽然能删除 HashMap 中指定值的元素,但是不能删除所有的重复元素,你觉得怎么删除重复数据比较好?有哪些方案?

    1.4K50

    面试官:怎么去除 List 中的重复元素?我一行代码搞定,赶紧拿去用!

    问题 上次栈长给大家分享了《带了一个 3 年的开发,不会循环删除 List 中的元素,我简直崩溃!!》,上次也给大家留了个小话题: 怎么去除 List 中的重复元素呢?...复制一个 list2,再循环 List2,判断 list 中的元素的首尾出现的坐标位置是否一致,如果一致,则说明没有重复的,否则重复,再删除重复的位置的元素。...List list2 = new ArrayList(new HashSet(list)); System.out.println(list2); } 这招也太简单了吧,一行代码搞定...distinct 方法去重,这个方法也十分简单,一行代码搞定!...去重 Stream 去重 最后两种方案最简单,都是一行代码就能搞定的,推荐使用!

    1.1K20

    骨灰级乐高粉讲述:我是怎么用算法给两吨积木自动分类的

    我们先跳过买几车乐高、安装摄像头、传送带等等过程,来看看他是怎么写这个分类程序的。...在两块乐高中间隔开的部分“缝纫机”会剪一下,然后把下一张扫进来的乐高图像接上。 上述这些都是用OpenCV写出来的。...OpenCV基元 我第一次选择的方法是用OpenCV基元,特别是其中的轮廓匹配和圆检测。只要处理乐高的种类没那么多,用这种方式就还能保证一个相对不错的识别准确率。...类似的问题几乎在每种特征上都要出现一遍,最后你要花费大量的精力去调整,才能让系统达到一个令你满意的状态。...再多吹一点:不管是在训练还是推理中,大概2000行特征检测代码以及另外2000行测试和胶水(glue)代码可以被少于200行的Keras代码代替了。

    1.1K60

    怎么用R语言把表格CSV文件中的数据变成一列,并且行名为原列名呢,谢谢

    今天收到一封邮件,来询问这样的问题: [5veivplku0.png] 这样的邮件,是直接的邮件,没有寒暄直奔主题的邮件。...唯一的遗憾是不知道是谁写的…… 如果我理解的没有错误的话,写信人的需求应该是这个样子的: 他的原始数据: [8vd02y0quw.png] 处理后想要得到的数据: [1k3z09rele.png] 处理代码...,第一列为ID,其它几列为性状 2,使用的函数为data.table包中的melt函数 3,melt中,dd为对象数据框,id为不变的列数,这里是ID一列,列数所在的位置为1,其它几列都变成一列,然后列名变为行名...来信者需求: 怎么用R语言把表格CSV文件中的数据变成一列,并且行名为原列名呢,谢谢 1,csv文件,可以用fread函数读取,命名,为dd 2,数据变为一列,如果没有ID这一列,全部都是性状,可以这样运行...:melt(dd),达到的效果如下: [2dtmh98e89.png] 所以,就是一个函数melt的应用。

    6.8K30

    让天下没有难学的js之this到底是什么,怎么用,这里可能给你答案

    var _this = this、.call()等方法去实现效果,最后虽然达到了想要的效果,但是却并没有明白问题所在,也懒得去仔细研究,那么今天我就来带大家一起看看js中this的庐山真面目 「温馨提示...,我们直接运行函数时候,函数里的this是直接绑定到Window上的,其实按我个人的理解是,所有的全局变量都是默认绑定到Window上的,全局变量a,用Window.a也一样可以获取到,所以此处的直接调用函数...关于用new调用函数后是如何执行的,《你不知道的JavaScript》一书中是这么说的 ❝ 使用 new 来调用函数,或者说发生构造函数调用时,会自动执行下面的操作。...以上代码可以看出,箭头函数的this指向取决于它所在作用域的this,并且箭头函数无法被改变this指向,无论是用call还是new。...其实箭头函数和我们之前使用的一种方法几乎一样,那就是用一个变量暂存this function foo() { var self = this // lexical capture of this

    53730

    2024-01-24:用go语言,已知一个n*n的01矩阵, 只能通过通过行交换、或者列交换的方式调整矩阵, 判断这个矩阵的对角

    用go语言,已知一个n*n的01矩阵, 只能通过通过行交换、或者列交换的方式调整矩阵, 判断这个矩阵的对角线是否能全为1,如果能返回true,不能返回false。...我们升级一下: 已知一个n*n的01矩阵, 只能通过通过行交换、或者列交换的方式调整矩阵, 判断这个矩阵的对角线是否能全为1,如果不能打印-1。 如果能,打印需要交换的次数,并且打印怎么交换。...灵捷3.5 大体步骤如下: 1.遍历矩阵的每一行和每一列,统计每行和每列的1的个数。...2.如果某一行或某一列的1的个数超过n/2(n为矩阵的大小),则无法通过交换操作使得对角线上的元素全为1,直接输出-1。...5.从第一行开始,逐行遍历矩阵,对于每一行,检查是否需要进行交换: • 如果该行的1的个数小于n/2,则说明需要进行行交换,找到一行与其交换,并更新swap数组。

    14420

    「强烈建议收藏」小程序canvas绘制带二维码海报全流程(枚举踩坑,详解解决方案)

    ✅ 小程序canvas遇到的坑 ③ 关于canvas 宽高以及缩放比问题,绘制的元素变形,画布的高度真得等于cavans标签设置的宽高么?✅ ④ canvas怎么绘制叠在一起的两张图片,并控制层级?...,如果没有对应设置canvas画布的画布宽高以及scale,画出的画布就会严重的变形,我们用一个例子来解释。...我们完美解决了片文本的层级问题,接下来,我们就要绘制海报的主要的内容了。在我们绘制海报的时候,可能会遇到多行文本的情况,那么多对多行文本,我们是怎么解决的呢?...这这里教大家一种方法,我们可以一个一个字的绘制到canvas中,然后把每个字的宽度相加,如果总宽度大于容器的宽度,那么就另外起一行,增加每一行的高度,从头开始画。,我们直接上代码。...使用 // 将 dist 目录下,weapp.qrcode.esm.js 复制到项目目录中 如果用 taro uniapp 等框架 ,可以用 npm install import drawQrcode

    3.6K52

    Web页面组成

    想把同一类型的放在一起,同一类型的元素有很多。想设置它们的大小,间距,高宽等等,可以用div统一设置,大家全部通用。 div就像一个盒子,例如div设置字体大小,其下的元素通用。...html元素是存在的,但是用眼睛去看页面是看不到的。 visibility代表的是可见。 在html页面中可见是指元素有高和宽。 11)邮件发Html附件,样式失败的原因?...js的函数和Python也很像。Python函数的关键字是def,javascript是用function。 javascript的参数用逗号隔开,可以有多个参数。...js在收到它的返回结果后,就知道这个注册有没有成功,如果成功了,自然给页面做一些跳转并给你适当的提示“恭喜你,注册成功!!!”。 数据库的操作,js是不直接参与的。js用接口和后端服务进行交互的。...用的是最原始的js语言,前端框架jquery,无论是什么样的东西来做元素定位啊,中心思想,不是元素的属性就是元素的特征。

    2K20

    CSS 布局的本质是什么

    为了节省成本,大家又摸索出了跨端引擎的方案,也就是说还是通过网页来写渲染和交互的逻辑,但是渲染用的 api 是由安卓、ios 分别实现,这样就实现了跨端的渲染,逻辑部分也是由 JS 来写,一些需要的设备能力...display 但是盒与盒之间也是有区别的,有的盒可以在同一行显示,有的则是独占一行,而且对内容的位置的计算方式也不一样。...block 的元素会独占一行、可以设置内容的宽高,具体计算规则叫做 BFC。 inline 的元素宽高由内容撑开不可设置,不会独占一行,具体计算规则叫做 IFC。...最开始的时候网页主要是用来显示一些文本,所以流式的位置计算规则就很方便。...也就是说,盒内部的布局计算规则根据 display 来确定,还可以用 position 做一些调整。

    99940

    CSS 布局的本质是什么

    为了节省成本,大家又摸索出了跨端引擎的方案,也就是说还是通过网页来写渲染和交互的逻辑,但是渲染用的 api 是由安卓、ios 分别实现,这样就实现了跨端的渲染,逻辑部分也是由 JS 来写,一些需要的设备能力...display 但是盒与盒之间也是有区别的,有的盒可以在同一行显示,有的则是独占一行,而且对内容的位置的计算方式也不一样。...block 的元素会独占一行、可以设置内容的宽高,具体计算规则叫做 BFC。 inline 的元素宽高由内容撑开不可设置,不会独占一行,具体计算规则叫做 IFC。...最开始的时候网页主要是用来显示一些文本,所以流式的位置计算规则就很方便。...也就是说,盒内部的布局计算规则根据 display 来确定,还可以用 position 做一些调整。

    76640

    CSS 布局的本质是什么

    为了节省成本,大家又摸索出了跨端引擎的方案,也就是说还是通过网页来写渲染和交互的逻辑,但是渲染用的 api 是由安卓、ios 分别实现,这样就实现了跨端的渲染,逻辑部分也是由 JS 来写,一些需要的设备能力...display 但是盒与盒之间也是有区别的,有的盒可以在同一行显示,有的则是独占一行,而且对内容的位置的计算方式也不一样。...block 的元素会独占一行、可以设置内容的宽高,具体计算规则叫做 BFC。 inline 的元素宽高由内容撑开不可设置,不会独占一行,具体计算规则叫做 IFC。...最开始的时候网页主要是用来显示一些文本,所以流式的位置计算规则就很方便。...也就是说,盒内部的布局计算规则根据 display 来确定,还可以用 position 做一些调整。

    67940
    领券