Cha*_*art 35 security lua sandbox environment-variables capability
关于Lua和Javascript是否支持对象能力模型,在cap-talk邮件列表上进行了一些讨论,得出的结论是,由于支持将环境限制为被调用函数setfenv,以及对不可变对象进行不可伪造引用的可能性,OCM可能是实现.
我们看过这个怎么样了?我有兴趣从现有应用程序中删除漏洞,在Lua中使用非常有用的,慷慨的脚本支持,遗憾的是在各种情况下允许完全shell访问.需要一些shell访问:对象能力模型似乎是管理事物的好方法.但是我担心一个案例我可以说是多么令人信服,这种方法实际上可以确保在确定的混乱实践中是安全的.
一些链接:
setfenv在行动; 显示表格背后的基本思想,在适当的情况下,可以只读我无法与 Lua 交谈,但对于 Javascript,Caja 有工具可以创建适当的沙箱,限制仅访问某些功能。它最初是为了为 HTML/JS 小部件(如 iGoogle 上使用的小部件)构建沙箱而创建的。
http://code.google.com/p/google-caja/
以下是他们主页上对该项目的描述:
Caja(发音为“KA-ha”)是一个西班牙语单词,意思是盒子、银行、收银机、金库;贵重物品的容器。Web 开发人员使用 HTML、JavaScript 和 CSS 等传统工具;Caja 提供了一个编译器(“诱骗器”),它接受 Web 应用程序并生成“诱骗”的 HTML Web 应用程序。诱骗者尝试通过进行静态分析来验证安全属性,如果不能,它会重写输入以添加运行时检查。
由于 Web 应用程序普遍使用浏览器 API(例如 DOM API),它们可以对网页进行大量控制,因此 Caja 提供了可虚拟化部分 DOM 的驯服 API。包含页面可以设置嵌入应用程序的环境,以便嵌入式应用程序认为它正在与整个页面的 DOM 交互,但实际上只是通过称为虚拟 iframe 的机制操作包含页面的有界部分。
Caja 应用程序使用的 JavaScript 是用 JavaScript 的故障停止子集(实际上是 EcmaScript5)编写的。这个子集称为“Valija”,几乎包括整个 JavaScript 语言,但删除了一些容易出错的结构,例如 with 并限制了 eval 的使用方式。
| 归档时间: |
|
| 查看次数: |
2373 次 |
| 最近记录: |