可编辑的Python模块

有没有办法禁止在我的系统上加载模块?假设我想限制我的用户访问子进程或popen2模块.类似
PHP的’disabled_functions’或任何类似的方法来实现相同的东西. 最佳答案 正如@Thomas指出的那样,黑名单是实施任何安全机制的一种非常糟糕的机制.白名单是一种更安全的方法.

但是解释器内部的机制并不是特别优秀,原因有多种:在源代码级别可利用的解释器中的缺陷将允许用户直接通过该级别内置的任何机制(并且PHP团队要求Linux供应商停止将此称为安全问题,因为(a)他们每周修复其中一个并且(b)尝试限制不受信任的用户提供的脚本几乎是不可能完成的任务 – 使用FastCGI或类似工具来处理可能不受信任的脚本).

Python解释器可能不是为处理恶意输入而设计的,所以不要这样处理.

如果你真的想限制不受信任的用户可以用Python脚本做什么,可以提出一些建议:不要使用mod_python或类似的东西.使用FastCGI或类似工具,您可以指定应运行脚本的用户帐户,并且不会将您的脚本作为Web服务器用户执行.并学习如何配置SELinux或AppArmor以限制该进程可以做什么 – 设置其中一个工具一小时可以为您节省大量的麻烦,而且您可以嘲笑失败的所有可爱的小漏洞尝试.

点赞