什么是沙盒?

Laz*_*zer 111 sandbox

我已阅读维基百科文章,但我不确定它的含义,以及它与版本控制有多相似.

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

cla*_*aws 253

在此输入图像描述

一个沙坑或沙箱是低,宽容器或浅的凹陷装满沙子,使儿童可以玩.许多带孩子的房主在他们的后院建造沙坑,因为与许多游乐场设备不同,它们可以容易且廉价地建造."沙坑"也可以表示露天砂矿.

嗯,软件沙箱与为孩子玩的沙箱没什么不同.通过为孩子提供沙箱,我们模拟真实游戏场地的环境(换句话说,一个isolated environment),但限制孩子可以做什么.因为我们不希望孩子被感染,或者我们不希望他给别人带来麻烦.:)原因是什么,我们只想限制孩子可以做些什么Security Reasons.

现在来到我们的软件沙箱,我们让任何软件(子)执行(播放),但对它(他)可以做什么有一些限制.我们可以对执行软件的功能感到安全可靠.

您已经看过并使用过防病毒软件.对?它也是一种沙箱.它限制任何程序可以做什么.当检测到恶意活动时,它会停止并通知用户"此应用程序正在尝试访问某些资源.是否要允许?".

下载一个名为sandboxie的程序,您可以获得沙箱的实践经验.使用此程序,您可以在受控环境中运行任何程序.

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

在此输入图像描述

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

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

如果您有适当的sandox,您甚至可以运行受病毒感染的文件并停止病毒的所有恶意活动,并亲自查看它正在尝试做什么.事实上,这将是Antivirus研究员的第一步.


Kal*_*see 27

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

更常见的是,我看到沙盒指的是虚拟机之类的东西 - 隔离机器上的一些正在运行的代码,这样它就不会影响基本系统.

  • 好吧,基本上沙盒是在将软件投入实际使用之前在受控环境中测试软件。对?顺便说一句,为什么它被称为“沙箱”? (2认同)

JRL*_*JRL 12

举一个具体的例子:假设您有一个处理汇款的应用程序.在生产环境中,真钱交换.在沙盒环境中,一切都运行完全相同,但钱是虚拟的.它用于测试目的.

例如,Paypal提供了这样的沙盒环境.


Fra*_*cis 5

对于软件开发中的"沙盒",它意味着开发而不会以孤立的方式打扰其他人.

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