【问题标题】:Safest python code running最安全的python代码运行
【发布时间】:2010-04-11 21:59:42
【问题描述】:

如果我在服务器上运行自定义用户代码,如何保护我的网络服务器。如果任何用户可以在我的服务器上提交他的 python 源并运行它。

可能是一些模块或 linux 工具用于关闭此脚本的任何网络和硬件活动。

感谢大家的帮助!

【问题讨论】:

    标签: python system


    【解决方案1】:

    您正在考虑的概念是沙盒。查看有关它的 Python wiki 页面:

    http://wiki.python.org/moin/SandboxedPython

    【讨论】:

      【解决方案2】:

      一般来说,如果您想允许执行不受信任的代码,python 并不是最好的语言选择。 JVM 和 .NET 对沙盒的支持要好得多,因此 Jython 和 IronPython 会是更好的选择。

      【讨论】:

      • 实际上——最安全的方法可以说是使用seccomp,它将可用的系统调用锁定到exit()read()write()(后者对已经打开的文件)描述符);这将允许运行任意块的本机二进制文件。但是,由于 Python 需要比这些更多的系统调用才能运行,因此它与 seccomp 不兼容。与任何语言或解释器级别的沙箱相比,我更信任 seccomp,这仅仅是因为它更简单、更不灵活且更具限制性。
      • 也许使用模式 2 seccomp python 可以选择在安全模式下运行。
      【解决方案3】:

      查看Utility Mill,了解 Greg Pinero 是如何做到这一点的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多