首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Lua的能力:有什么经验?

Lua的能力:有什么经验?
EN

Stack Overflow用户
提问于 2010-11-09 13:27:18
回答 1查看 2.5K关注 0票数 35

关于Lua和Javascript是否支持对象能力模型,已经出现了邮寄名单,其结论是,由于支持将环境限制在通过setfenv调用函数上,并且可能存在对不可变对象的不可忘记的引用,所以可以实现OCM。

我们看到这是怎么回事了吗?我感兴趣的是删除现有应用程序中的漏洞,在Lua中提供非常有用的、慷慨的脚本支持,不幸的是,它允许在各种情况下完全访问shell。一些shell访问是必需的:对象能力模型似乎是管理事物的好方法。但我担心的是,我能有多强的说服力,让我相信,这种方法在绝对的杂乱无章的实践中,实际上是可靠的。

一些链接:

  1. 老问题:我如何创建一个安全的Lua沙箱?
  2. Erights.org背景:从对象到功能
  3. Lua:SandBoxesReadOnlyTables -显示了setfenv的实际操作;展示了在适当情况下可以只读的表背后的基本思想。
EN

回答 1

Stack Overflow用户

发布于 2011-02-07 11:45:15

我不能和Lua交谈,但是对于Javascript,Caja有工具来创建一个适当的沙箱,只限制对某些功能的访问。最初创建它是为了构建一个用于HTML/JS小部件的沙箱(就像那些在iGoogle上使用的小部件)。

http://code.google.com/p/google-caja/

下面是他们主页上对这个项目的描述:

Caja (发音为"KA-ha")是一个西班牙语单词,意思是盒子、银行、收银机、金库;是贵重物品的容器。web开发人员使用传统工具,如HTML、JavaScript和CSS;Caja提供了一个编译器(“诱饵”),它接受web应用程序并生成“诱骗”的HTML应用程序。诱骗者试图通过进行静态分析来验证安全性属性,如果不能,则重写输入以添加运行时检查。 由于web应用程序通常使用浏览器API(例如DOM ),从而对网页进行了大量的控制,所以Caja提供了驯服的API来虚拟化DOM的部分内容。包含页面可以设置嵌入应用程序的环境,以便嵌入式应用程序认为它与整个页面的DOM交互,但实际上只是通过一种名为虚拟iframes的机制来操作包含页面的有界部分。 Caja应用程序使用的JavaScript是在JavaScript的一个失败停止子集(实际上是EcmaScript5)中编写的。这个子集,称为"Valija",几乎包括整个JavaScript语言,但是删除了一些容易出错的构造,比如with和限制了使用eval的方式。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4134114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档