Tag: 沙盒

Lua的能力:有什么经验?

关于Lua和Javascript是否支持对象能力模型, 在cap-talk邮件列表上有一些讨论 ,结论是由于支持通过setfenv将环境限制为被调用的函数,以及不可伪造的引用不可变对象的可能性, OCM可以实施。 我们有没有看到这是如何工作的? 我很感兴趣的是从现有的应用程序中删除漏洞利用非常有用,慷慨的脚本支持在Lua,不幸的是允许在各种情况下完全shell访问。 需要一些shell访问权限:对象能力模型似乎是一种pipe理事物的好方法。 但是我担心我可以做出多less有说服力的事实,这种方法实际上在可靠的混乱实践中是可validation的。 一些链接: 较老的问题: 我如何创build一个安全的Lua沙箱? erights.org的背景: 从对象到function Lua wiki: SandBoxes和ReadOnlyTables – 显示setfenv的行动; 显示了在正确的情况下可以只读的表格的基本思想

我如何创build一个安全的Lua沙箱?

所以Lua似乎是在我的应用程序中实现安全的“用户脚本”的理想select。 然而,embeddedlua的大多数例子似乎包括加载所有的标准库,包括“io”和“包”。 所以我可以从我的解释器中排除这些库,但是甚至基本库都包含访问文件系统的函数“dofile”和“loadfile”。 我怎样才能删除/阻止这样的不安全的function,而不是结束了甚至没有像“ipairs”function的基本东西的解释器?