Security 想学习沙盒吗

Security 想学习沙盒吗,security,sandbox,Security,Sandbox,我想学习更多关于沙箱的知识。不仅仅是关于它。我想学习,这样我就能写一个简单的沙盒了 令人惊讶的是,任何地方都没有任何可用的信息。甚至维基百科的文章也不好 谁能给我推荐一些好材料吗。我知道这是一个非常高级的概念。那么,学习和掌握it的先决条件是什么 答案可能是特定语言的。不幸的是,大多数语言没有内置的沙箱功能。但是函数式语言往往功能强大,可以从头开始构建,而无需扩展语言 在Tcl中,基本机制是创建从属解释器: interp create -safe sandbox interp eval sand

我想学习更多关于沙箱的知识。不仅仅是关于它。我想学习,这样我就能写一个简单的沙盒了

令人惊讶的是,任何地方都没有任何可用的信息。甚至维基百科的文章也不好


谁能给我推荐一些好材料吗。我知道这是一个非常高级的概念。那么,学习和掌握it的先决条件是什么

答案可能是特定语言的。不幸的是,大多数语言没有内置的沙箱功能。但是函数式语言往往功能强大,可以从头开始构建,而无需扩展语言

在Tcl中,基本机制是创建从属解释器:

interp create -safe sandbox
interp eval sandbox $set_up_code
set result [interp eval sandbox $unsafe_code]

阅读API挂钩,例如,sandboxie钩住Windows内核以过滤文件系统中的所有API调用并将其结果重定向到sandbox,您可以钩住API并进行过滤,只传递有效参数,为无效调用返回错误

对于API挂钩,你可以在网上找到很多资料,可以在codeproject.com上试试,你也可以看看。这些是FreeBSD的沙盒等价物


提供了(尽管您还必须了解FreeBSD代码的其余部分。)

谷歌Chromium使用沙箱,并提供了一些相关文档:


    • 一个简单的沙盒就是一个让“某物”执行的环境,但限制它的功能

      通常,这种“东西”是一种已经存在的语言,如Java、JavaScript、C#或本机代码。Java有用于小程序等的“沙盒”API,.NET有各种“信任”级别,JavaScript有解释器(浏览器)对它的限制

      所以“编写”自己的沙箱有点奇怪,除非你也有一种语言想要沙箱

      你有这样的语言吗?具体来说,您想了解什么?

      这取决于您想要沙盒什么。如果它是一个具有多个可用接口/语言的成熟系统,那么您确实不想重新发明轮子,而是在中运行虚拟机,或者

      在任何情况下,沙盒都是,至少在某种程度上是您“应该”运行的系统的虚拟化


      如果您需要针对单一(解释的)语言对应用程序进行沙箱处理,那么修改解释器听起来是一种明智的方法。

      前几天我写了一篇文章,其中链接了许多不同技术的参考资料。类似的方法也适用于其他操作系统。我希望它能有所帮助-我也找不到太多全面的文档。

      的成员可能会给你一些好的建议。请阅读,哦。。那么我根本不是指语言沙盒,它限制了用户可以写什么。我指的是chrome中的沙盒,它限制了对系统资源的访问。就像一个防病毒沙盒,它让应用程序运行,但拦截每一次恶意尝试并通知用户;防病毒软件只是试图查看本机应用程序调用的函数,并试图确定它是否“合法”。你知道你会发现什么有趣;面向方面编程。C#作为“PostSharp”,Java也有一个框架。它允许您钩住各种函数调用,然后在这些点上执行各种操作。它可以让你探索这个想法(但它不是一个真正的“沙箱”)。如果您想了解安全概念(即它是如何实现的),请查看.NET信任级别(但要准备好感到非常无聊:P)。希望这有帮助。+1对于sandboxie,我喜欢这个程序。。。至少,在我获得Win64之前,我做到了:(
      sandboxie
      是一款准确描述我脑海中想法的软件。我打算提出同样的建议。。