是否可以创建一个环境以在 Linux 下安全地运行任意 Python 脚本?这些脚本应该是从不受信任的人那里收到的,并且可能太大而无法手动检查它们。
一个非常暴力的解决方案是创建一个虚拟机并在每次启动不受信任的脚本后恢复其初始状态。(太贵了。)
我想知道是否可以限制 Python 访问文件系统和与其他程序交互等等。
是否可以创建一个环境以在 Linux 下安全地运行任意 Python 脚本?这些脚本应该是从不受信任的人那里收到的,并且可能太大而无法手动检查它们。
一个非常暴力的解决方案是创建一个虚拟机并在每次启动不受信任的脚本后恢复其初始状态。(太贵了。)
我想知道是否可以限制 Python 访问文件系统和与其他程序交互等等。
考虑使用 chroot 监狱。这不仅非常安全、得到很好的支持和测试,而且还适用于从 python 运行的外部应用程序。
您可以尝试 4 件事:
Systrace 最近遭到入侵,因此请注意这一点。
您可以运行 jython 并使用 JVM 中的沙盒机制。JVM 中的沙盒功能非常强大,非常好理解,并且或多或少有据可查。需要一些时间来准确定义您想要允许的内容以及您不想允许的内容,但是您应该能够从中获得非常强大的安全性......
另一方面,jython 不是 100% 兼容 cPython ...
尝试搜索“sandboxing python”,例如:
你能不能以除了该目录中的脚本之外无权访问任何东西的用户身份运行吗?