【发布时间】:2011-01-01 15:08:08
【问题描述】:
有没有办法限制在嵌入式解释器下运行的 python 脚本的能力?具体来说,我希望阻止脚本执行以下操作:
- 导入 python 扩展模块(即 .pyd 模块),应用程序特别允许的除外。
- 以任何方式操作进程(即启动新进程或终止应用程序)。
- 任何类型的网络。
- 操作文件系统(例如创建、修改和删除文件)。
【问题讨论】:
标签: python c cpython python-embedding
有没有办法限制在嵌入式解释器下运行的 python 脚本的能力?具体来说,我希望阻止脚本执行以下操作:
【问题讨论】:
标签: python c cpython python-embedding
没有。没有简单的方法可以在 CPython 上阻止这些事情。您的选择是:
【讨论】:
也许this 会有所帮助。您提供了一个关于如何使用 ast 的示例。
【讨论】:
你想要什么 运行 Python 版本的App Engine 的 Google 的 Unladen Swallow 项目。
模块受到严格限制,ctypes 不允许使用,套接字与某些政策或其他政策相匹配,换句话说,您将获得与他们的 Java 产品一致的 Python 沙盒版本。
我想指出,这使系统几乎毫无用处。对任何比另一个 [App Engine] 应用程序更酷的东西都没有用。忘记猴子补丁系统模块,甚至限制访问自己的堆栈。完全不像动态的。
OT:游戏通常会嵌入 LUA 来编写脚本,或许您应该检查一下。
【讨论】: