我正在寻找一种以安全的方式在GAE中执行用户提交的python代码的方法(比GAE沙箱更严格)。
RestrictedPython肯定适合鞋子,在Zope中用于exakt同样的目的。
但RestrictedPython依赖于修改AST(抽象语法树),这意味着从编译器加载模块(我在SDK抱怨之前加载解析器模块)。
还有其他人为Google App Engine做过这方面的工作吗?
答案 0 :(得分:1)
请注意,即使您可以访问GAE上的ast模块,RestrictedPython可能仍然不适合您的用例。它的目的只是为了保护来自不太信任的用户的输入,在这些用户中你不相信他们的编码能力。你仍然需要信任并了解它们。
恶意用户可以通过多种方式导致大量资源使用或无限递归 - 因此请勿使用它来防止匿名用户。