33.沙盒

1/3/2024 笔记

# 什么是沙盒

沙箱或称沙盒,即sandbox,顾名思义,就是让程序跑在一个隔离的环境下,不对外界的其他程序造成影响,外界无法修改该环境内任何信息,沙箱内的东西单独属于一个世界,通过创建类似沙盒的独立作业环境,在其内部运行的程序并不能对硬盘产生永久性的影响

  • 沙盒在软件工程中指的是一个软件运行的隔离环境
  • 在这个环境里,代码可以安全地运行和测试,不会对其他环境或主机造成影响

# 沙盒的作用

  • 为代码提供一个安全可控的运行环境。代码只在沙盒内运行,不会影响到主系统。
  • 允许并发运行多个不同的沙盒环境。不同的测试可以同时运行而互不影响。
  • 提高开发效率。开发者可以随意编写代码测试而无需担心环境问题。

# 举例

  • 我们的浏览器,Chrome 中的每一个标签页都是一个沙箱(sandbox)
  • codesandbox.io 就是一个在线的前端沙盒环境,开发者可以在浏览器中运行前端demo

# 如何实现、使用沙箱

sandbox是h5提出的一个新属性,启用方式就是在iframe标签中使用sandbox属性:
这是目前比较通用的前端实现沙箱的方案,假如你要执行的代码不是自己写的代码,不是可信的数据源,那么务必要使用iframe沙箱。

这也会带来一些限制:

  • script脚本不能执行
  • 不能发送ajax请求
  • 不能使用本地存储,即localStorage,cookie等
  • 不能创建新的弹窗和window
  • 不能发送表单
  • 不能加载额外插件比如flash等
最近更新时间: 2/22/2024, 8:01:51 AM
강남역 4번 출구
Plastic / Fallin` Dild