当前位置: 首页 > news >正文

沙箱1111111

参考文章https://blog.csdn.net/qq_61839115/article/details/132120985?fromshare=blogdetail&sharetype=blogdetail&sharerId=132120985&sharerefer=PC&sharesource=2401_88743143&sharefrom=from_linkhttps://blog.csdn.net/qq_61839115/article/details/132120985?fromshare=blogdetail&sharetype=blogdetail&sharerId=132120985&sharerefer=PC&sharesource=2401_88743143&sharefrom=from_link

// xxx.js
const vm = require('vm')
var local_var = 'leekos'
global.global_var = 'xxx global~'
var vm_var = vm.runInThisContext('global_var="vm_var";local_var="Tranquility";')
console.log("vm_var: "+vm_var)
console.log("local_var: "+local_var)
console.log(global_var)/*
输出:
vm_var: Tranquility
local_var: leekos
vm_var
*/

这段代码我当时不太理解最后一个输出,搜了一下因为vm.runInThisContext返回最后一个表达式的值刚好是Tranquility,因此vm_var赋值为Tranquility

后面讲了vm.createContext() + vm.runInContext()这两个和前面的区别,

const vm = require('vm')
global.global_var = 1
const sandbox = {global_var: 2} //创建一个沙箱对象
vm.createContext(sandbox)  //创建一个上下文对象
vm.runInContext('global_var*=2',sandbox)console.log(sandbox)    // { global_var: 4 }
console.log(global_var) // 1

就这段代码来讲vm.createContext创建一个上下文对象,这里的sandbox是全局对象(在这个沙箱里不能访问globle),这个就类似于globle,后面在vmrunInContext里的globle_var是隔绝的(只是沙箱里的)所以sandbox的输出是globle_var:4而沙箱外的globle_var依旧是1

http://www.dtcms.com/a/418424.html

相关文章:

  • 2、order-service 企业级代码目录结构规范
  • C# MVVM模式和Qt中MVC模式的比较
  • html mip 网站阿里云装wordpress慢
  • 权限校验是否应该在 Spring Cloud Gateway 中进行?
  • MariaDB数据库管理
  • 21.mariadb 数据库
  • GFM100 地线连续性检测监控器:破解工业接地痛点,筑牢电力系统安全防线
  • 2、Nginx 与 Spring Cloud Gateway 详细对比:定位、场景与分工
  • 玳瑁的嵌入式日记---0928(ARM--I2C)
  • 微服务故障排查
  • 离散时间马尔可夫链
  • 怎么做网站快照网站域名跳转代码html
  • 基于 OpenCV + 深度学习的实时人脸检测与年龄性别识别系统
  • c++ opencv 复现Fiji 配对拼接算法中的加权融合
  • 中秋国庆双节餐饮零售破局!Deepoc 具身模型外拓板打造 “假日智能运营新范式
  • 瑞安网站建设电话百度商桥接入网站
  • 嵌入式硬件——I.MX6ULL EPIT(增强型周期中断定时器)
  • 降低测试成本缩短测试周期 | 车辆OBD数据采集方案
  • 一级消防工程师考试时间新闻类网站怎么做seo
  • window显示驱动开发—确定显示适配器上的 VidPN 支持
  • Kafka05-入门-尚硅谷
  • Visual Studio 2022
  • 【不背八股】19.GPT-2:不再微调,聚焦零样本
  • 5、焊接质量检验及缺陷分析
  • 【AI】大模型的分析力横评:一次“伪异步”排查后的真实思考
  • 养老院服务质量建设专项网站广州seo关键词优化外包
  • 第一章 假设三:走势包含无序运动状态(混沌现象)和有序运动状态(下跌或上涨)
  • ElementUI-Table 表格实现行拖拽
  • Logit论文阅读
  • 网站cms建设wordpress模仿app启动广告屏弹窗