如何“锁定”V8?

6

我对V8不是很熟悉,计划在Python Web应用程序中使用它。目的是让用户提交和执行某些JS脚本。显然这是一个安全威胁,因此我正在寻找记录如何“锁定”v8的资源。例如,我能否创建允许调用的函数的白名单?或者不允许引用的库的黑名单?


顺便问一下,为什么不允许他们提交Python脚本呢?我认为这会简化你的架构。 :-) (必须提一下)。是的,可以为这些脚本创建一个安全的Python沙盒。 - Kos
@Kos 怎么做?我也很感兴趣,但我到处都看到Python几乎无法被安全隔离,有一千种突破的例子。 - salezica
2个回答

1

如果您使用普通的V8(即不是像node.js这样的东西),那么就不会有任何危险函数。JavaScript本身没有包含文件系统函数等标准库。

恶意用户唯一能做的就是创建无限循环、深度递归和内存占用过高。


抱歉晚了才回复,但我也对此很感兴趣。你如何防止用户超过内存/处理配额? - salezica
不知道。请在Stack Overflow问答中发布一个新问题。 - ThiefMaster
我刚刚发布了一个关于这个的新问题:http://stackoverflow.com/questions/11637075/how-do-i-prevent-malicious-javascript-in-v8-with-python - Gattster

0

如果简单地锁定V8实例(即在chroot中不给予其权限)并且在超过一定时间后如果它没有返回则杀掉进程,这是行得通的吗?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接