除了为我的网站提供 API 之外,我还想为用户提供编写可以在我的服务器上运行的简单脚本的能力。脚本将有权访问用户拥有的对象,并能够操纵、修改和以其他方式处理其数据。
我希望能够在精细级别限制这些脚本占用的资源(例如,最大执行时间应该是 100 毫秒)。我还想确保一个安全的沙箱,这样每个用户只能访问一组有限的数据和资源,并且不能访问磁盘、其他人的数据等。
通常,脚本会非常简单(例如,创建符合特定条件的值的总和或平均值),并且它们通常会在模板中使用(例如,用平均值填充此单元格或 html 元素的值或和)。
理想情况下,我想使用一种众所周知的常用编程语言的沙盒子集,以便用户轻松上手。后端是用 Python 编写的,因此基于 Python 的语言可能会有好处,但我对其他语言和技术持开放态度。由于其简单的性质和常见的可用性,Javascript 也很有吸引力。
这些语言应该支持创建 DSL 和库。
目标受众是基于 Web 的应用程序的一般用户群,不一定是非常技术性的。换句话说,它不是针对具有任何特定编程语言的特定知识的基础。我的期望是一部分用户将创建将被大多数人使用的脚本。
对于语言和技术有什么想法或建议吗?其他人尝试这个的任何例子以及他们遇到的成功和失败?