我需要在Web应用程序中运行不受信任的服务器端代码 - 我有什么选择?
2015-1-8 14:22:18
收藏:0
阅读:103
评论:2
上下文 - 如果你想直接切入主题,请跳过此部分
我一直在使用 Python (Bottle / gevent / MongoDB) 构建一个相当复杂的 Web 应用程序。它是一个 RSVP 系统,允许几个独立的前端实例带有注册表格,还有后端访问权限和细化用户权限 (这些用户是我们的客户)。现在我需要实现一个灵活的 map-reduce 引擎来收集注册数据的统计信息。一个一刀切的解决方案是不可能的,因为所收集的数据因实例而异。我还想让我们更加技术倾向的客户可以使用这个系统。
上下文结束
所以我需要执行通过 Web 界面输入的任意代码字符串 (一种类似于即兴插件的东西 - 语言无关)。我已经了解到将 Python 安全地进行沙盒处理几乎是不可能的,所以这不是一个选项。
目前我已经研究了 Lua,并发现了 Lupa、Lunatic Python 和 Lupy,但这三个都允许访问 Python 数据运行时的某些部分。
还有 PyExecJS 及其各种运行时 (V8、Node、SpiderMonkey),但我不知道它是否会带来任何安全风险。
问题:
有人知道其他 (更适合) 选项吗?
对于任何了解 Lua 绑定的人: 是否可能使它们完全安全,而不需要太多麻烦?
对于那些熟悉 PyExecJS 的人: 它的安全性如何?同时,对于比如调用 1000 次短映射函数再迭代一个 1000 项列表的情况,我应该期望什么样的性能?
点赞
用户12285907
Sneklang 是 Python 的严格子集,在提供的范围内进行安全评估。
它受范围大小和节点评估步骤数的限制,并且保护免于无限循环、堆栈溢出和过度内存使用。
还有一个在线沙箱:https://sneklang.functup.com
我专门制作了这个项目,因为我有相同的要求。
2019-10-28 13:11:12
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
以下是运行不受信任代码的几种方法: