【发布时间】:2012-04-02 19:50:27
【问题描述】:
我希望允许用户为我的游戏制作他们自己的 Python“模组”,方法是将他们的脚本放置在游戏“扫描”Python 模块和导入的特殊文件夹中。 防止导入“危险”脚本的最简单方法是什么?我不希望人们向我抱怨他们使用了某人的 mod 并且它擦除了他们的硬盘驱动器。 我想限制的事情是访问/修改/创建其文件夹之外的任何文件并连接到互联网/下载/发送数据。如果您能想到其他任何事情,请告诉我。
那么如何做到这一点呢?
【问题讨论】:
-
没有简单的方法来提供合理数量的沙盒。 特别是如果文件需要一定数量的磁盘访问。
-
那么困难的方法是什么?我认为至少有一种方法可以防止将来导入特定的模块。
-
pypy 提供更复杂的沙盒,但我不知道如何将它嵌入到您的游戏中。
-
pypy 不是一个选项,因为游戏引擎需要官方 python 版本,对不起。
-
你能通过使用权限来处理磁盘访问漏洞吗?例如,当用户安装您的游戏时,创建一个只允许读取/修改游戏目录中文件的帐户,并使所有扩展都在该帐户上运行?