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

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

沙箱或称沙盒,即sandbox,顾名思义,就是让程序跑在一个隔离的环境下,不对外界的其他程序造成影响,外界无法修改该环境内任何信息,沙箱内的东西单独属于一个世界,通过创建类似沙盒的独立作业环境,在其内部运行的程序并不能对硬盘产生永久性的影响...沙箱设计的目的是为了让不可信的代码运行在一定的环境中,从而限制这些代码访问隔离区之外的资源。浏览器上JavaScript就是在沙盒中执行,严格控制的环境。沙箱将JavaScript与桌面世界隔离开来。...JS中沙箱的使用场景前端JS中也会有应用到沙箱的时候,毕竟有时候你要获取到的是第三方的JS文件或数据?而这数据又是不一定可信的时候,创建沙箱,做好保险工作尤为重要。...总而言之:要解析或执行不可信的JS的时候,要隔离被执行代码的执行环境的时候,要对执行代码中可访问对象进行限制的时候如何实现/使用沙箱实现沙箱最方便的模式iframe,同理,也可以使用webWorker。...  // 所以我们选择使用传参的形式将 window对象 传入沙箱内  // 此时沙箱内使用window对象的时候,不会再去全局搜索window对象  // 而使用的就是沙箱内部定义的形参  win.itCast

1.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

js沙箱

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

1.3K20

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挂载代理对象

1.7K10

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

jsFiddle实例研究 前文中我们只是概述了iframe沙箱的基本原理并且提供了一种简单的实现方式,在本篇中,我们将结合jsFiddle的实例探讨更详细的实现方案。 ?...现在,我们把沙箱运行的服务器和主站服务器(Host)放在不同的域下,由于跨域文档的隔离,Host与沙箱内部环境之间无法直接操作文档流,当沙箱内部需要向外发送HTTP请求或者从Host处获取用户信息时,我们便需要一套通信机制来解决问题...Host服务器搭建完成,这时我们在不同的端口上再搭建一个沙箱服务器以容纳第三方应用,nodejs代码同上。...沙箱服务器运行在8082端口,还包括一个测试secret key接收的app。接着修改Host的首页,添加如下代码: <!...总结 在本篇文章中,我们分析了jsFiddle实现沙箱的方法,以及常用的sandbox与Host间通信的方案。

4.3K10

不懂安全沙箱?看这篇!

在本文中,我们将探讨安全沙箱技术的原理、小程序安全沙箱技术与原生安全沙箱技术的优劣势对比,以及如何评估应用程序的安全性。一、什么是安全沙箱技术?...在安全沙箱中,应用程序或进程被限制在一个虚拟环境中运行,这个虚拟环境通常被称为沙箱。...图片​三、小程序安全沙箱技术成为新秀 小程序安全沙箱技术是指在微信或其他小程序平台中运行小程序时,为了保证小程序的安全性和稳定性而采用的一种沙箱技术。...四、小程序安全沙箱技术,相比于Apple iOS安全沙箱的优劣势 小程序安全沙箱技术和Apple iOS安全沙箱技术都是为了保护用户隐私和系统安全而采用的一种安全机制,但是它们也有各自的优劣势。...小程序安全沙箱技术的优势在于: 运行环境轻量化:小程序安全沙箱相比于iOS安全沙箱更轻量化,占用系统资源更少,可以更快速地启动和运行小程序。

60000

说说JS中的沙箱

沙箱设计的目的是为了让不可信的代码运行在一定的环境中,从而限制这些代码访问隔离区之外的资源。 JS中沙箱的使用场景 前端JS中也会有应用到沙箱的时候,毕竟有时候你要获取到的是第三方的JS文件或数据?...2、借助iframe实现沙箱 前面介绍一种劣质的、不怎么安全的方法构造了一个简单的沙箱,但是在前端最常见的方法,还是利用iframe来构造一个沙箱,such as 在线代码编辑器中:https://codesandbox.io...这种方式更为方便、简单、安全,也是目前比较通用的前端实现沙箱的方案,假如你要执行的代码不是自己写的代码,不是可信的数据源,那么务必要使用iframe沙箱。...3、nodejs中的沙箱 nodejs中使用沙箱很简单,只需要利用原生的vm模块,便可以快速创建沙箱,同时指定上下文。...总结 即使我们知道了如何在开发过程中使用沙箱来让我们的执行环境不受影响,但是沙箱也不一定是绝对安全的,毕竟每年都有那么多黑客绞尽脑汁钻研出如何逃出浏览器沙箱和nodejs沙箱,因此笔者个人建议: 1、业务代码上不执行不可信任的第三方

2.5K30

沙箱、蜜罐和欺骗防御的区别

“欺骗防御”这个术语从去年开始才逐渐流传开来,所以很难讲清这些解决方案与其他试图诱骗攻击者的工具——比如沙箱和蜜罐,到底有什么区别。...沙箱 几乎自网络和第三方程序出现起,对网络流量和程序的分析需求就一直存在。...当前的有效沙箱基本都是在专用虚拟机上执行。这么做可以在与网络隔离的主机上用多种操作系统安全地测试恶意软件。...安全研究人员会在分析恶意软件时采用沙箱技术,很多高级反恶意软件产品也用沙箱来根据可疑文件的行为确定其是否真的是恶意软件。...小公司通常会选择部署沙箱即服务,从已经实现了自动化整个沙箱检测过程的供应商那里收获沙箱技术的各种益处。 蜜罐 蜜罐和蜜网就是为诱捕攻击者而专门设置的脆弱系统。

1.7K50

【Chromium中文文档】沙箱FAQ

什么是沙箱沙箱是一个允许沙箱进程创建的C++库,沙箱进程是一种运行在非常限制性的环境中的进程。沙箱进程可以唯一自由使用的资源是CPU周期和内存。例如,沙箱进程不能写磁盘或者显示他们自己的窗口。...Chromium渲染器都是沙箱化进程。 沙箱可以保护什么,不能保护什么? 沙箱限制了运行在沙箱中的代码的bug的危害。...沙箱是一个纯用户模式库,任何用户可以运行沙箱化进程。 如果没有虚拟机,你该怎样用C++实现沙箱? 我们为Windows安全模型划分等级。...沙箱会设置好环境,这样你不愿沙箱化进程执行的动作就会因安全检查而失败。在Chromium中,沙箱就是这样,因此所有访问检查都会失败。 所以一个沙箱化进程(比如渲染器)是如何完成任务的?...沙箱不是一个安全银弹,但对于那些恶意使用来说,沙箱是一道强大的最后屏障。 我需要了解什么陷阱吗? 你首先需要记住,你只需要将你完全可控的代码或者完全理解的代码沙箱化。沙箱化第三方代码可能非常困难。

2.5K100
领券