我读过 维基百科文章,但我并不确定它的意思,以及它与版本控制有多相似。
如果有人能用简单易懂的语言解释沙盒技术是什么将会很有帮助。
好的,软件沙盒与为孩子玩耍建造的沙盒没有什么不同。通过为孩子提供一个沙盒,我们模拟真实游乐场的环境(换句话说,是一个隔离的环境
),但对孩子可以做什么进行限制。因为我们不想让孩子感染或者我们不想让他给别人带来麻烦。:)无论原因是什么,我们只想对孩子可以做什么进行限制,以保证安全性
。
现在来看看我们的软件沙盒,我们允许任何软件(孩子)执行(玩耍),但对它(他)可以做什么进行一些限制。我们可以感到安全和可靠,关于正在执行的软件可以做什么。
您已经看到并使用过杀毒软件。对吗?它也是一种沙盒。它对任何程序可以做什么进行限制。当检测到恶意活动时,它会停止并通知用户“此应用程序正在尝试访问如此等资源。是否允许?”。
下载一个名为sandboxie的程序,您可以亲身体验沙盒。使用这个程序,您可以在受控环境中运行任何程序。
红色箭头表示来自运行程序的更改流入计算机。标有“硬盘”(无沙盒)的框显示正常运行程序的更改。标有“硬盘”(带沙盒)的框显示在Sandboxie下运行程序的更改。动画说明Sandboxie能够拦截这些更改并将它们隔离在一个黄色矩形的沙盒中。它还说明将这些更改分组使得一次性删除它们变得容易。
现在从程序员的角度来看,沙箱是限制应用程序允许使用的API。在防病毒软件示例中,我们将系统调用(操作系统API)设置限制。沙盒化的定义基本上是具有测试环境(开发人员集成,质量保证,舞台等)。 这些测试环境模拟生产环境,但不共享任何生产资源。 它们拥有完全分离的服务器,队列,数据库和其他资源。
更常见的是,我看到沙盒化指的是类似虚拟机的东西 - 将一些运行代码隔离在机器上,以便它不能影响基础系统。
在软件开发中,“沙盒”指以隔离的方式进行开发,而不会干扰其他人。
它与版本控制并不相似。但是一些版本控制方法(如分支)可以帮助创建沙盒。
更常见的是我们提到另一个沙盒。
/usr/lib
等内容来测试你的库等。沙盒是一种隔离的测试环境,使用户能够运行程序或执行文件,而不会影响它们所在的应用程序、系统或平台。软件开发人员使用沙盒来测试新的编程代码。尤其是网络安全专业人员使用沙盒来测试潜在的恶意软件。如果没有沙盒技术,应用程序或其他系统进程可能会对网络上所有用户数据和系统资源拥有无限制的访问权限。
沙盒还用于安全地执行恶意代码,以避免损害运行代码的设备、网络或其他连接设备。使用沙盒检测恶意软件可以提供额外的安全保护层,防止安全威胁,如隐蔽攻击和利用零日漏洞的攻击。
主要文章在这里。