什么是沙箱?

我已经阅读了 < strong > 维基百科文章 ,但我真的不知道它是什么意思,它是如何类似于 版本控制

如果有人能用非常简单的术语来解释什么是沙箱,那将会很有帮助。

81784 次浏览

我们更经常地使用 另一个沙坑


无论如何,沙盒通常意味着一个 与世隔绝的环境。您可以在沙箱中做任何您喜欢的事情,但是它的效果不会在沙箱外传播。例如,在软件开发中,这意味着您不需要在 /usr/lib中添加任何东西来测试您的库,等等。

沙箱的这个定义基本上意味着拥有测试环境(开发人员集成、质量保证、阶段等)。这些测试环境模拟生产,但是它们不共享任何生产资源。它们有完全独立的服务器、队列、数据库和其他资源。

更常见的情况是,我看到沙箱指的是类似于虚拟机的东西——在机器上隔离一些正在运行的代码,这样它就不会影响基本系统。

对于软件开发中的“沙盒”来说,它意味着以一种孤立的方式进行开发而不会打扰到其他人。

它与版本控制不同,但是一些版本控制(作为分支)方法可以帮助制作沙箱。

举个具体的例子: 假设您有一个处理资金转移的应用程序。在生产环境中,真实的货币是可以交换的。在沙箱环境中,一切运行完全相同,但金钱是虚拟的。这是用来测试的。

例如,Paypal 提供了这样一个沙盒环境。

enter image description here

沙坑或沙箱是一个低,宽容器或浅凹陷填充沙子,儿童可以在其中玩耍。许多有孩子的房主在他们的后院建造沙坑,因为和许多游乐场设备不同的是,这些设备可以很容易且廉价地建造。“沙坑”也可以表示露天沙矿。

一个软件沙盒和一个为孩子建造的玩具沙盒没有什么不同。通过为孩子提供一个沙箱,我们模拟了真实的游乐场环境(换句话说,一个 isolated environment) ,但对孩子能做什么有限制。因为我们不希望孩子被感染或者我们不希望他给别人带来麻烦。:)不管原因是什么,我们只是想对孩子能为 Security Reasons做什么加以限制。

现在来到我们的软件沙箱,我们让任何软件(孩子)执行(播放) ,但对它(他)可以做什么有一些限制。我们可以感觉到 安全及稳妥关于执行软件可以做什么。

你见过并使用过杀毒软件。对吧?它也是一种沙盒。它限制了任何程序的能力。当检测到恶意活动时,它会停止并通知用户“此应用程序正试图访问某某资源”。要不要允许?”.

下载一个名为 沙箱的程序,你可以亲手体验一下沙盒。使用这个程序,你可以在受控环境中运行任何程序。

红色箭头表示从正在运行的程序流入计算机的更改。标记为硬盘(无沙盒)的框显示正常运行的程序的更改。标记为 Hard disk (with sandbox)的框显示运行在 Sandboxie 下的程序所做的更改。该动画说明 Sandboxie 能够拦截更改并将其隔离在一个沙箱中,该沙箱被描述为一个黄色矩形。它还说明了将更改分组在一起可以很容易地一次删除所有更改。

enter image description here

现在,从程序员的角度来看,沙箱正在限制应用程序所允许的 API。在防病毒示例中,我们限制了系统调用(操作系统 API)。

另一个例子是在线编码领域,比如 topcoder。您提交了一个代码(程序) ,但它在服务器上运行。对于服务器的 safety,他们应该限制程序 API 的访问级别。换句话说,他们需要创建一个沙箱并在其中运行您的程序。

如果你有一个合适的 Sandox,你甚至可以运行一个病毒感染的文件,停止所有的恶意活动的病毒,并亲眼看看它正在做什么。事实上,这将是杀毒研究人员的第一步。

沙盒是一个独立的测试环境,允许用户运行程序或执行文件,而不会影响他们运行的应用程序、系统或平台。软件开发人员使用沙箱来测试新的编程代码。特别是网络安全专家使用沙箱来测试潜在的恶意软件。如果没有沙箱,应用程序或其他系统进程可以无限制地访问网络上的所有用户数据和系统资源。

沙箱还用于安全地执行恶意代码,以避免损害正在运行代码的设备、网络或其他连接的设备。使用沙盒检测恶意软件提供了一个额外的安全威胁保护层,比如使用零日漏洞的隐形攻击和漏洞利用。

主要文章是 给你