Skip to main content
 首页 » 编程设计

python之Google AppEngine (GAE) 上的 RestrictedPython

2025年05月04日22grandyang

我正在寻找一种方法来以安全的方式在 GAE 中执行用户提交的 Python 代码(比 GAE 沙箱严格得多)。

RestrictedPython 肯定适合这双鞋,在 Zope 中用于完全相同的目的。

但 RestrictedPython 依赖于修改 AST(抽象语法树),这意味着从编译器加载模块(我在 SDK 提示之前就加载了解析器模块)。

有没有其他人用这个为 Google App Engine 做过任何工作?

请您参考如下方法:

请注意,即使您可以访问 GAE 上的 ast 模块,RestrictedPython 可能仍然不是您用例的正确解决方案。它仅旨在保护不太受信任的用户的输入,您不信任他们的编码能力。您仍然需要信任并了解他们。

恶意用户可以通过多种方式导致大量资源使用或无限递归 - 所以不要使用它来防止匿名用户。