Par*_*and 7 javascript python sandbox
除了为我的网站提供API之外,我还想让用户能够编写可在我的服务器上运行的简单脚本.这些脚本可以访问用户拥有的对象,并能够操作,修改和处理其数据.
我希望能够将这些脚本所占用的资源限制在一个很好的水平(例如,最大执行时间应该是100毫秒).我还想确保一个安全的沙箱,这样每个用户只能访问一组有限的数据和资源,并且无法访问磁盘,其他人的数据等.
通常,脚本将非常简单(例如,创建匹配特定条件的值的总和或平均值),并且它们通常将在模板中使用(例如,用平均值填充此单元格或html元素的值或和).
理想情况下,我想使用一个众所周知的常用编程语言的沙盒子集,以便用户轻松获取.后端是用Python编写的,因此基于Python的语言可以带来好处,但我对其他语言和技术持开放态度.由于其简单的特性和通用可用性,Javascript也很有吸引力.
这些语言应该支持创建DSL和库.
目标受众是基于Web的应用程序的一般用户群,不一定非常技术性.换句话说,它不是针对具有任何特定编程语言的特定知识的基础.我的期望是用户的一部分将创建将由大多数人使用的脚本.
有关语言和技术的任何想法或建议吗?其他人试图这样做的例子以及他们遇到的成功和失败?
我为此使用 Lua,但它是针对支持 Lua 的社区。所以我的答案是你的用户是谁?
如果您的用户是内部用户(就像我的情况一样)并且精通 Python,请使用 Python。然而,如果这是万维网的东西,我可能会选择 javascript,因为它是通用语言(每个开发人员都知道它,并且很容易掌握)。至于引擎……V8 会很好,但它不是 100% 线程安全,因为你不能像使用 SpiderMonkey 那样以无锁方式在同一进程中运行多个引擎。所以你可能想使用它。另外,由于 javascript 默认情况下是沙盒的,因此您不必担心自己的实现太多。
| 归档时间: |
|
| 查看次数: |
388 次 |
| 最近记录: |