首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏前端Q

    你不知道的JS 沙箱隔离

    本文接下来的内容,将介绍我在探索基于 Web Worker 实现 JavaScript 沙箱隔离方案过程中的一些资料收集、理解以及我的踩坑和思考的过程。 提到沙箱,我会先想到出于兴趣玩过的沙盒游戏,但我们要探索的 JavaScript 沙箱不同于沙盒游戏,沙盒游戏注重对世界基本元素的抽象、组合以及物理力系统的实现等,而 JavaScript 沙箱则更注重在使用共享数据时对操作状态的隔离沙箱隔离。 ,然后在宿主中生命周期中实现移除,能够以较小的开发成本实现整个 JavaScript 沙箱隔离的机制。 、document 全局方法的并代理到主线程的方式实现了部分的 JavaScript 沙箱隔离(暂时没看到路由隔离的相关代码实现)。

    2.3K40发布于 2021-10-11
  • 来自专栏前端框架源码剖析

    微前端01 : 乾坤的Js隔离机制(快照沙箱、两种代理沙箱

    相较于single-spa,乾坤做了两件重要的事情,其一是加载资源,第二是进行资源隔离。而资源隔离又分为Js资源隔离和css资源隔离,本文主要探索的是乾坤的Js资源隔离机制。 我们把Js隔离机制常常称作沙箱,事实上,乾坤有三种Js隔离机制,并且在源代码中也是以 SnapshotSandbox、LegacySandbox、ProxySandbox三个类名来指代三种不同的隔离机制 下文我们统一以快照沙箱、支持单应用的代理沙箱、支持多应用的代理沙箱,来代表这三种不同的Js隔离机制。那么问题来了,隔离隔离,怎么有这么多沙箱2、编码实现三个沙箱的核心逻辑 为了理解方便,下文我会用最简单的逻辑最基础的语法来实现三个沙箱,逻辑肯定不会很严密,但可以方便我们更快速的理解其中的原理。 其实到了这里,如果读者朋友已经理解了上面的思路,就可以说已经理解了乾坤的Js隔离机制。下面我们来看看乾坤的源码具体是怎么实现的这三个沙箱机制。

    3.1K20编辑于 2022-09-27
  • 来自专栏前端技术江湖

    前端技术探索 - 你不知道的JS 沙箱隔离

    本文接下来的内容,将介绍我在探索基于 Web Worker 实现 JavaScript 沙箱隔离方案过程中的一些资料收集、理解以及我的踩坑和思考的过程。 提到沙箱,我会先想到出于兴趣玩过的沙盒游戏,但我们要探索的 JavaScript 沙箱不同于沙盒游戏,沙盒游戏注重对世界基本元素的抽象、组合以及物理力系统的实现等,而 JavaScript 沙箱则更注重在使用共享数据时对操作状态的隔离沙箱隔离。 ,然后在宿主中生命周期中实现移除,能够以较小的开发成本实现整个 JavaScript 沙箱隔离的机制。 、document 全局方法的并代理到主线程的方式实现了部分的 JavaScript 沙箱隔离(暂时没看到路由隔离的相关代码实现)。

    2.1K30发布于 2021-04-21
  • 来自专栏伪架构师

    (译)为容器提供更好的隔离沙箱容器技术概览

    主机操作系统在为每个容器创建虚拟的用户空间时,不同容器之间的隔离是很薄弱的,这是造成上述问题的根本原因。基于这样的现状,真正的沙箱式容器,成为很多研发工作的焦点。 具体的解决方式就是创建一个真正的沙箱容器,尽可能的从主机操作系统中隔离开来。多数解决方案都是一种混合架构,在虚拟机的强信任边界和容器的高效率之间尝试取得平衡。 在 Firecracker 出现之前,Lambda 和 Fargate 都在每个客户独立的 EC2 虚拟机上运行,从而保证强隔离。 虽然在公有云中,虚拟机的强隔离性要优于容器,但是使用通用的 VMM 和虚拟机来做应用沙箱是很不经济的。Firecracker 为云原生应用定制了 VMM,兼顾了安全和性能两方面问题。 评估表明,Firecracker 的 microVM,运行在 2CPU 和 256G 内存的主机上,消耗不到 5MB 内存,启动大约用了 125ms。

    3.6K30发布于 2019-07-24
  • 来自专栏没有用户名丶的专栏

    前端沙箱利用这些特性实现代码的隔离和限制

    前端沙箱利用这些特性来实现代码的隔离和限制。一、什么是小程序沙箱小程序沙箱是一种用于保护小程序的安全性和稳定性的安全机制,类似于前端沙箱。 具体来说,小程序沙箱的实现方式包括以下几个方面:1、安全隔离 小程序沙箱会将小程序中的代码隔离在一个独立的环境中,避免恶意代码对其他程序或系统的攻击。 2、权限控制 小程序沙箱可以限制小程序的访问权限,包括文件系统、网络、存储、设备等,从而保护用户的隐私和安全。小程序沙箱会对小程序的权限进行控制,防止恶意代码对用户数据进行访问和窃取。 2、应用程序稳定性 小程序沙箱可以限制小程序的运行环境,避免恶意代码对系统资源的过度消耗或破坏,从而保障小程序的稳定性和可靠性。 沙箱对运行其中的小程序代码,隔离其对宿主环境的资源访问。

    80720编辑于 2023-04-18
  • 来自专栏惊羽-布壳儿

    mysql(2) - 隔离级别

    不同隔离级别,对应读取问题 脏读 不可重复度 幻读 读未提交 × × × 读已提交 √ × × 可重复读 √ √ ×(mysql innoDB 在加间隙锁的情况下是√) 序列化 √ √ √ 幻读有2 中场景,一种是session1进行 2次范围查询,在中间session2在该范围内插入了一条数据,导致session1 2次查询结果不一样; 另外一种是 session1 第一次范围查询在结果集的区间内不存在该条记录 ,此时session2 在该范围内插入了一条数据,session1 在相同的位置插入会失败 事物隔离级别实现原理 引用自 https://blog.csdn.net/CoderTnT/article/ 举个例子 ,在已提交读隔离级别下: 比如此时有一个事务id为100的事务,修改了name,使得的name等于小明2,但是事务还没提交。 通过ReadView生成策略的不同实现不同的隔离级别。

    1.2K10编辑于 2022-06-15
  • 来自专栏前端杂货铺

    沙箱

    因此,可以采用一种 沙箱模式来管理我们的代码。   该模式创建了一个新的环境变量,所有的变量在该环境内可访问,环境外不可访问(前提是不隐式声明 全局变量如  a=123)。 具体的沙箱模式可以这样实现: 1 function Sandbox(){ 2 if(! [].slice.call(arguments); 8 var that = this; 9 if(args.length == 2 ,fn2); 46 ss.use("f2",function(s){ 47 s.speak(); 48 }) 49 })   另外,jQuery的创建者之前提到过另一种在js执行引擎级别的代码隔离,即通过创建iframe,在另一个 全局空间内执行代码,这样原命名空间就不会受到污染。

    1.8K40发布于 2018-03-15
  • 来自专栏前端博客

    再谈沙箱:前端所涉及的沙箱细讲

    沙箱或称沙盒,即sandbox,顾名思义,就是让程序跑在一个隔离的环境下,不对外界的其他程序造成影响,外界无法修改该环境内任何信息,沙箱内的东西单独属于一个世界,通过创建类似沙盒的独立作业环境,在其内部运行的程序并不能对硬盘产生永久性的影响 渲染进程被沙箱(Sandbox)隔离,网页 web 代码内容必须通过 IPC 通道才能与浏览器内核进程通信,通信过程会进行安全的检查。 沙箱设计的目的是为了让不可信的代码运行在一定的环境中,从而限制这些代码访问隔离区之外的资源。浏览器上JavaScript就是在沙盒中执行,严格控制的环境。沙箱将JavaScript与桌面世界隔离开来。 总而言之:要解析或执行不可信的JS的时候,要隔离被执行代码的执行环境的时候,要对执行代码中可访问对象进行限制的时候如何实现/使用沙箱实现沙箱最方便的模式iframe,同理,也可以使用webWorker。 因为iframe隔离的更彻底。Worker虽然无法读取DOM对象,但是可以读取BOM的 navigator与location对象与XMLHttpRequest对象。

    2.4K10编辑于 2023-05-07
  • 来自专栏红蓝对抗

    vm2 Node.js沙箱库曝高危漏洞 可突破沙箱执行任意代码

    近日,Node.js沙箱库vm2曝出一个高危漏洞(CVE-2026-22709),攻击者可利用该漏洞突破沙箱限制,在底层主机系统上执行任意代码。 这款开源的vm2库能够创建安全执行环境,支持用户运行不受信任的JavaScript代码,且限制其访问文件系统,是实现代码隔离执行的常用工具。 漏洞根源:数据清理机制存在疏漏此次曝出的最新漏洞,根源在于vm2库未能对处理异步操作的Promise组件实现完善的沙箱隔离,导致无法确保代码始终在独立的隔离环境中执行。  同时开发者还公开了相关演示代码,展示了攻击者如何在vm2沙箱中触发该漏洞、实现沙箱逃逸,并在主机系统上执行命令。 历史漏洞:沙箱逃逸问题屡发vm2此前也曾多次曝出高危沙箱逃逸漏洞,其中包括被披露的CVE-2022-36067,攻击者利用该漏洞可突破隔离环境,在主机系统上执行命令。 

    32110编辑于 2026-02-03
  • 来自专栏coding个人笔记

    js沙箱

    沙箱,英文是sandbox,敲程序的应该都听过,或许用过类似理念的只是自己不知道,简单说就是让你的程序运行在一个隔离的环境下,不对外界的其他程序造成影响。 沙箱主要是一种安全机制,把一些不信任的代码运行在沙箱之内,不能访问沙箱之外的代码。比如在线编辑器、执行第三方js、vue服务端渲染等,只要是运行不信任的程序,沙箱隔离就会使用到。 这是目前js沙箱能做到的最好的沙箱机制了,很多会再加上iframe去做更多的限制,因为H5提出了iframe的sandbox属性,限制了更多,也可以进行配置解决这些限制。当然,想要绕过方法还是有的。 而nodejs沙箱就很简单了,直接用内部提供的VM Module就可以了。感兴趣可以自己去查一查。 其实沙箱问题很多,解决修复这些方法也很多,感觉就是一堆大佬在博弈。 这边想提一嘴,微前端概念其实就是用js创造一个类似iframe的沙箱,解决隔离问题,分别运行各个项目。所以现在沙箱使用也不一定都是安全机制,也会因为功能需求使用。常见的有快照沙箱和proxy沙箱

    1.5K20发布于 2020-08-28
  • AI Agent 的代码执行沙箱:从容器到微虚拟机的隔离之道

    这把AIAgent沙箱的核心矛盾摆上了桌面:Agent执行代码,需要隔离隔离意味着开销。ZeroBoot给出了一个极端的答案。本文从这里出发,与我一起满足好奇心,拆解五种主流沙箱方案的原理与取舍。 沙箱隔离是一个连续的梯度——从轻到重,隔离强度与资源开销同步增长:核心指标对比:方案隔离机制启动延迟内存/sandbox典型用户容器(Docker)namespace+cgroup~500ms几十MBPatchPal E2B的架构E2B在Firecracker之上构建了完整的AI沙箱云服务,被Manus、Perplexity等用于生产环境:启动速度的关键在于预热快照:提前启动一批VM到就绪状态并做内存快照,新请求到来时直接从快照恢复 microVM的代价更强的隔离意味着更高的开销。每个FirecrackerVM需要独立的内核镜像和内存空间(E2B默认分配1GBRAM/sandbox),在高并发下是一笔不小的成本。 但更根本的变化是:AIAgent大规模执行代码这件事,正在把沙箱从"开发工具"变成"基础设施问题"。选错隔离方案的代价,不再是性能损耗,而是安全事故。这个领域的技术演进,远没有停止。

    31900编辑于 2026-04-08
  • 来自专栏企鹅号快讯

    NPM酷库:vm2,安全的沙箱环境

    通常,我们用vm库来实现一个沙箱,在代码主程序之外执行额外的JS脚本。 安全的vm2 vm2就是专门为了解决vm的安全问题而诞生的。 vm2 特性: 运行不受信任的JS脚本 沙箱的终端输出信息完全可控 沙箱内可以受限地加载modules 可以安全地向沙箱间传递callback 死循环攻击免疫 vm2 原理: 首先,vm2基于vm,使用官方的 vm库构建沙箱环境。 然后使用JavaScript的Proxy技术来防止沙箱脚本逃逸。

    2.1K50发布于 2018-01-10
  • 来自专栏方球

    qiankun proxySand 沙箱

    qiankun 内为微应用实现了沙箱机制, 以实现js隔离的目的, 沙箱的重点在于初始化时对全局对象的copy 及代理 使用 const sand = new ProxySand(name) sand.active () // 启动 sand.inacitve() // 关闭 属性 name 沙箱名 type 沙箱类型 Proxy proxy沙箱 Snapshot LegacyProxy 旧沙箱实现 sandboxRunning 沙箱是否运行中 proxy 全局对象的proxy副本, 沙箱实体 active 启动沙箱 inactive 关闭沙箱 实现 沙箱的实现过程都在 constructor 实例的创建中 设置初始值 `); } // 在 strict-mode 下,Proxy 的 handler.set 返回 false 会抛出 TypeError,在沙箱卸载的情况下应该忽略错误 createElement可以知道是由哪个沙箱调用的动态追加补丁程序 if (p === 'document') { // 为document挂载代理对象

    2.1K10发布于 2020-09-28
  • 来自专栏AgenticAI

    Claude Code带来沙箱隔离,减少84%中断确认请求同时,更高效更安全,还开源了

    因此敌对在提升自主性和保障安全之间引入了沙箱机制! 这个沙箱主要包含两大隔离层面: - 文件系统隔离,模型及运行的进程只能访问修改特定目录与文件 - 网络隔离,仅允许访问被允许的主机与域名,防止下载恶意软件和上传敏感文件。 具体的沙箱应用主要有在cc中的sanboxed bash tool,和在cc on the web中。 在Anthropic的内部使用中,启用沙箱后弹出权限请求的频次 下降约 84%。

    1K10编辑于 2025-11-29
  • 来自专栏星回的实验室

    JavaScript中的沙箱机制探秘:iFrame沙箱实现方案详解

    而对于前端来说,让前端的第三方js代码能够从本质上产生隔离,并且让后端参与部分安全管控是最理想的状态。在这些方案中,在引擎层面制造隔离的iframe方案显然是最简单可行的。 现在,我们把沙箱运行的服务器和主站服务器(Host)放在不同的域下,由于跨域文档的隔离,Host与沙箱内部环境之间无法直接操作文档流,当沙箱内部需要向外发送HTTP请求或者从Host处获取用户信息时,我们便需要一套通信机制来解决问题 然而在一些情况下我们需要考虑向下兼容,在不同的窗体下由于文档流的隔离,可共享的东西并不多,这其中就包括url和window,通信方案也自然是从这上面做文章。 window.name 相比location hash,window.name值最长支持2MB大小的数据,且它绑定至iframe上,即使iframe中重新加载不同页面,window.name的值也不会变 Host服务器搭建完成,这时我们在不同的端口上再搭建一个沙箱服务器以容纳第三方应用,nodejs代码同上。

    5.3K10发布于 2018-08-02
  • 来自专栏安恒网络空间安全讲武堂

    IOSMacOS沙箱逃逸竞赛

    因为 listio_lio系统调用可以从任何沙箱访问,并且由于漏洞提供了一些有趣的基本数据类型,LightSpeed可能会用于越狱iOS 11.4.1。 数据库crash 总而言之,我们需要按照以下顺序才能触发漏洞: 1.调用liolistio()来分配aioliocontext以及调度一些aio,然后在系统调用结束之前进行context切换; 2.aio

    1.8K30发布于 2019-09-29
  • 来自专栏CNCF

    Antrea加入CNCF沙箱

    问卷链接(https://www.surveymonkey.com/r/GRMM6Y2) ---- 作者:Antonin Bas, Jianjun Shen, Quan Tian, Salvatore 今天,我们很高兴地宣布,CNCF TOC 已经接受 Antrea 作为沙箱项目。这对于刚刚发布 1.0 版本的 Project Antrea 来说是一个重要的里程碑。 通过最新发布的 1.0 版本[2],你可以测试最新的特性,并设想下一个版本的新可能性。Antrea 项目团队欢迎你贡献一些代码,使用它来测试互操作性。 参考资料 [1] Antrea: https://github.com/vmware-tanzu/antrea [2] 最新发布的 1.0 版本: https://blogs.vmware.com/opensource

    1.3K20发布于 2021-05-27
  • 来自专栏HarmonyOS NEXT实战

    HarmonyOS NEXT实战:沙箱工具

    ##HarmonyOS Next实战##HarmonyOS SDK应用服务##教育##目标:封装沙箱工具,通过沙箱工具保存文件到沙箱中和清除沙箱文件。 知识点:使用该功能模块对文件/目录进行操作前,需要先获取其应用沙箱路径,获取方式及其接口:getContext().cacheDirfs:使用该功能模块对文件/目录进行操作前,需要先获取其应用沙箱路径。 表示沙箱路径的字符串称为path,获取方式及其接口用法请参考:应用上下文Context-获取应用文件路径。将指向资源的字符串称为URI。 : number): Promise<File>path:文件的应用沙箱路径或文件URI。 OpenMode.READ_WRITE(0o2):读写打开。给定如下功能选项,以按位或的方式追加,默认不给定任何额外选项:OpenMode.CREATE(0o100):若文件不存在,则创建文件。

    24800编辑于 2025-06-25
  • 来自专栏站长的编程笔记

    java 安全沙箱模型详解

    这对一些有安全隐患的类起到了安全隔离的作用。使它不能冒充系统类来破坏程序正常运作。 此外,不同的类装载器,也有自己的类装载范围。 结构化内存访问(不使用指针,一定程度上让黑客无法篡改内存数据) 自动垃圾收集 数组边界检查 空引用检查 数据类型安全 Java api的安全管理器 securityManager 这是安全沙箱中,离我们程序员最接近的一环

    1K40编辑于 2022-11-28
  • 来自专栏bisal的个人杂货铺

    TiDB沙箱环境初体验

    TiDB提供的这种沙箱环境,好处就是跳过了安装过程,直接让你有一个可以体验的TiDB环境,而且提供了免费的云资源,虽然因为服务器的物理位置,操作上可能延迟,但这毕竟是免费的云资源,还要什么自行车?

    94920编辑于 2022-10-04
领券