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

    微前端学习笔记(3):前端沙箱之JavaScript的sandbox(沙盒沙箱

    作为开发人员,我们经常会同沙箱环境打交道,例如,服务器中使用 Docker 创建应用容器;使用 Codesandbox运行 Demo示例;在程序中创建沙箱执行动态脚本等。 这个是腾讯的无界沙箱模式。 allow-popups-to-escape-sandbox:  允许沙箱文档打开新窗口,并且不强制要求新窗口设置沙箱标记。 沙箱逃逸的几种方式:访问沙箱执行上下文中某个对象内部属性时,如:通过window.parent利用沙箱执行上下文中对象的某个内部属性,Proxy 只可以拦截对象的一级属性,例如下面的上下文对象通过访问原型链实现逃逸 总结:多实例运行语法兼容不污染全局环境(主应用)LegacySanbox❌❌❌ProxySandbox✅❌✅SnapshotSandbox❌✅❌iframe✅✅✅转载本站文章《微前端学习笔记(3):前端沙箱

    3.8K21编辑于 2024-06-06
  • 来自专栏前端杂货铺

    沙箱

    因此,可以采用一种 沙箱模式来管理我们的代码。   该模式创建了一个新的环境变量,所有的变量在该环境内可访问,环境外不可访问(前提是不隐式声明 全局变量如  a=123)。 具体的沙箱模式可以这样实现: 1 function Sandbox(){ 2 if(! (this instanceof Sandbox)) return new Sandbox(); 3 this.modules = {}; 4 } 5 .");}} 37 function fn2(s){s.speak = function(){console.log("f2...")}} 38 function fn3( ("<script>parent.sandbox = function(s){eval(s)}<\/script>") 4 sandbox("a=3")

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

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

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

    2.4K10编辑于 2023-05-07
  • 来自专栏coding个人笔记

    js沙箱

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

    1.5K20发布于 2020-08-28
  • 来自专栏图形学与OpenGL

    实验3 文件操作

    一.实验目的与要求: 学会使用文件操作函数实现对文件打开、关闭、读、写等操作。 学会对数据文件进行简单的操作。 深入理解 C++的输入输出的含义及其实现方法。 掌握标准输入输出流的应用。 二.实验过程: 运行调试第8章编程示例8-2文本显示程序;将其改写为一个随机点名的程序,可以参考以下步骤:     (1)     读入指定文本文件的程序,文本文件格式见参考内容;     (2)     用随机函数根据文本文件的记录数量生成一个随机数;     (3)     根据这个随机数,从所读取的记录中找到对应的记录,并输出显示; 若还有时间,请尝试运行调试第8章编程示例8.3-4;完成练习题8.4.1 -3。 31150906011*  韩* 编程示例8-3: #include <iostream> #include <fstream> using namespace std; int get_int(int

    54020发布于 2018-10-09
  • 来自专栏方球

    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
  • 来自专栏python3

    实验3:CDP命令操作

    下面我们来做以上实验 Router>en Router#conf t Enter configuration commands, one per line.  End with CNTL/Z. Router(config)#host ccna3 ccna3(config)#enable password cisco1 ccna3(config)#enable secret cisco2 ccna3(config)#line vty 0 4 ccna3(config-line)#login % Login disabled on line 66, until 'password' is config-line)#pass cisco3 ccna3(config-line)#exit ccna3(config)#service password-encryption ccna3( config)#int s1/1/0 ccna3(config-if)#ip add 202.119.248.2 255.255.255.0 ccna3(config-if)#no shut %LINK

    1.4K10发布于 2020-01-11
  • 来自专栏图形学与OpenGL

    实验3 OpenGL几何变换

    1.实验目的: 理解掌握一个OpenGL程序平移、旋转、缩放变换的方法。 2.实验内容: (1)阅读实验原理,运行示范实验代码,掌握OpenGL程序平移、旋转、缩放变换的方法; (2)根据示范代码,尝试完成实验作业; 3实验原理: (1)OpenGL下的几何变换 在OpenGL (1.0, 0.0, 0.0); drawSquare(); //在原点处绘制边长为2红色正方形 glTranslatef(2.0,3.0,0.0); //向右移动2单位,向上移动3单位 glColor3f (0.0, 1.0, 0.0); drawSquare(); //绘制边长为2绿色正方形 glTranslatef(0.0,-3.0,0.0); //再向下移动3单位 glColor3f (0.0, 实验作业: 绘制如下图形: ?

    1.5K20发布于 2018-10-09
  • 来自专栏python3

    Linux基本操作实验3

    3)在一定时间内更新过或者访问过 4)大小在一定时范围 5)指定的类型 6)指定的文件OWNER和GROUP 7)拥有一定的访问权限或者特殊的mode bits 8)包含含有一定模式的内容 9)文件目录下一定深度及以上所有 /errors ./1234 [root@windriver-machine shtest]# 【3】Directories  目录,目录可以搜索深度 –maxdepth  -mindepth [root@windriver-machine shtest]# cut -d':' -f1</etc/passwd|head -n 3|xargs -p -n 5  finger finger -name '*.h' -execdir diff -u '{}' /tmp/master ';' [root@windriver-machine shtest]# 【3】删除命令  -delete

    1.6K20发布于 2020-01-14
  • 来自专栏星回的实验室

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

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

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

    IOSMacOS沙箱逃逸竞赛

    因为 listio_lio系统调用可以从任何沙箱访问,并且由于漏洞提供了一些有趣的基本数据类型,LightSpeed可能会用于越狱iOS 11.4.1。 liolistio()来分配aioliocontext以及调度一些aio,然后在系统调用结束之前进行context切换; 2.aio worker线程执行所有调度的I/O,并释放aioliocontext; 3. 步骤3和4是强制性的。

    1.8K30发布于 2019-09-29
  • 来自专栏网络技术联盟站

    H3CSE实验 | OSPF 路由实验-实验 2—— OSPF 静默端口

    实验命令描述】:用 silent-interface 命令来禁止接口发送 OSPF 报文。缺省情况下,允许接 口发送 OSPF 报文。 【实验配置】: [rt0]: # interface Serial0/2/0 link-protocol ppp ip address 11.11.11.1 255.255.255.0 # interface

    1.8K30发布于 2019-08-28
  • 来自专栏章鱼的慢慢技术路

    MFC绘图小实验3

    1,使用默认的文本背景模式,在点(-200,20)处输出黄底红字“Computer Graphics Based on VC++”;在(50,20)处输出黄底红字“BoChuang Research Institute”;使用透明文本背景模式在(-200,-20)处输出黑色整数5和8;在(0,-20)处输出黑色双精度浮点数(5.2,8.3)。 CRect rect; //定义矩形 GetClientRect(&rect); //获得客户区矩形 pDC->SetMapMode(MM

    65160发布于 2018-06-04
  • 来自专栏python3

    EIGRP实验 3 :EIGRP 拓扑、

    EIGRP实验 3 :EIGRP 拓扑、路由以及汇聚 实验目的: 通过对EIGRP实验拓扑,路由以及汇聚相关实验的的练习,掌握EIGRP建立拓扑信息的方式,度量计算方法,如何调整度量值,非等价负载均衡, 实验拓扑: ? 实验步骤: 1、首先在R1、R2、R3上分别配置好各自相关接口,并保持连通性。并且分别在R1/R2/R3路由器上起回环口,配置相应的IP地址,与上述的一致即可。 config)#no ip domain lo R3(config)#lin con 0 R3(config-line)#exec-t 0 0 R3(config-line)#logg sy R3(config-line )#exit R3(config)#int e0/1 R3(config-if)#ip add 23.1.1.3 255.255.255.0 R3(config-if)#no shutdown R3(config-if 2、配置好R1/R2/R3的EIGRP 100 进程,使用得R1/R2/R3都能正常建立邻居。

    58010发布于 2020-01-14
  • 来自专栏图形学与OpenGL

    实验3 直线裁剪算法

    2.实验内容: 本次实验主要结合鼠标画线程序来验证编码裁剪算法和实现梁友栋-Barsky裁剪算法,具体步骤如下: (1) 阅读学习所给的编码裁剪示范代码,了解程序使用方法,并结合三种不同类型直线对其进行裁剪测试 ,将测试结果存为图1-3,保存至word实验文档中(30分钟); (2) 为示范代码增加梁友栋-Barsky裁剪算法,并通过键盘按键“L”来控制,即按键盘“L”键时,用梁友栋-Barsky算法裁剪程序窗口内的直线 同样测试三种不同类型的直线,将测试结果存为图4-6,,保存至word实验文档中(60分钟); (3) 整理图1-6,并增加程序代码合并到一个word文档,将其命名为“序号-姓名-Prj2.doc”,电子版提交至雨课堂 ,A4打印稿下一次课前或实验课前提交。 3实验原理: 示范代码中编码裁剪算法原理参见教材裁剪内容,有关鼠标操作知识请参考OpenGL编程 基础篇(四)与鼠标的交互。

    1K10发布于 2019-02-25
  • 来自专栏CNCF

    Antrea加入CNCF沙箱

    今天,我们很高兴地宣布,CNCF TOC 已经接受 Antrea 作为沙箱项目。这对于刚刚发布 1.0 版本的 Project Antrea 来说是一个重要的里程碑。 访问Antrea Github[3]页面。 antrea [2] 最新发布的 1.0 版本: https://blogs.vmware.com/opensource/2021/04/15/its-here-project-antrea-1-0/ [3]

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

    HarmonyOS NEXT实战:沙箱工具

    ##HarmonyOS Next实战##HarmonyOS SDK应用服务##教育##目标:封装沙箱工具,通过沙箱工具保存文件到沙箱中和清除沙箱文件。 知识点:使用该功能模块对文件/目录进行操作前,需要先获取其应用沙箱路径,获取方式及其接口:getContext().cacheDirfs:使用该功能模块对文件/目录进行操作前,需要先获取其应用沙箱路径。 表示沙箱路径的字符串称为path,获取方式及其接口用法请参考:应用上下文Context-获取应用文件路径。将指向资源的字符串称为URI。 : number): Promise<File>path:文件的应用沙箱路径或文件URI。 沙箱地址 */ async saveToSandbox(src: string): Promise<string> { let sandboxUri: string = '' for

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

    java 安全沙箱模型详解

    结构化内存访问(不使用指针,一定程度上让黑客无法篡改内存数据) 自动垃圾收集 数组边界检查 空引用检查 数据类型安全 Java api的安全管理器 securityManager 这是安全沙箱中,离我们程序员最接近的一环

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

    TiDB沙箱环境初体验

    除了以上这些,作为初学者,第一步就是要有个测试的实验环境,我们可以下载TiDB安装包做本机部署,还可以找云资源作为环境,同时,TiDB提供了限期免费的云资源TiDB Cloud,帮助初学者,更好地体验。 TiDB提供的这种沙箱环境,好处就是跳过了安装过程,直接让你有一个可以体验的TiDB环境,而且提供了免费的云资源,虽然因为服务器的物理位置,操作上可能延迟,但这毕竟是免费的云资源,还要什么自行车?

    94920编辑于 2022-10-04
  • 来自专栏Gamma安全实验室

    初探Chrome沙箱逃逸

    初探Chrome沙箱逃逸 1 Background ? Chrome Security Architecture 众所周知沙箱是Chrome重要的安全机制,有沙箱就意味着v8、音视频解码等等渲染层的漏洞不能直接打到host上,所以我们想要pwn Chrome 至少要两个漏洞,沙箱进程的rce和沙箱逃逸。 to leak the address of heap // now 0x678 is freed again due to poping elements print(hex(heapAddr)); 3. 除了Mojo,Android Binder的CVE-2020-0041,Windows内核的CVE-2020-0981等这种也可以被用来逃逸Chrome沙箱3 参考链接 ?

    3.4K20发布于 2020-12-23
领券