【发布时间】:2010-04-11 21:59:42
【问题描述】:
如果我在服务器上运行自定义用户代码,如何保护我的网络服务器。如果任何用户可以在我的服务器上提交他的 python 源并运行它。
可能是一些模块或 linux 工具用于关闭此脚本的任何网络和硬件活动。
感谢大家的帮助!
【问题讨论】:
如果我在服务器上运行自定义用户代码,如何保护我的网络服务器。如果任何用户可以在我的服务器上提交他的 python 源并运行它。
可能是一些模块或 linux 工具用于关闭此脚本的任何网络和硬件活动。
感谢大家的帮助!
【问题讨论】:
您正在考虑的概念是沙盒。查看有关它的 Python wiki 页面:
【讨论】:
一般来说,如果您想允许执行不受信任的代码,python 并不是最好的语言选择。 JVM 和 .NET 对沙盒的支持要好得多,因此 Jython 和 IronPython 会是更好的选择。
【讨论】:
seccomp,它将可用的系统调用锁定到exit()、read()和write()(后者对已经打开的文件)描述符);这将允许运行任意块的本机二进制文件。但是,由于 Python 需要比这些更多的系统调用才能运行,因此它与 seccomp 不兼容。与任何语言或解释器级别的沙箱相比,我更信任 seccomp,这仅仅是因为它更简单、更不灵活且更具限制性。
查看Utility Mill,了解 Greg Pinero 是如何做到这一点的。
【讨论】: