繁体   English   中英

如何阻止Python stdlib模块导入?

[英]How can I block a Python stdlib module from being imported?

在我的Python脚本中,我想防止某些stdlib模块(例如ossys )被导入。 我将如何完成?

从字面上看,如果您只是想“将它们存根,以免直接导入将其加载”, 而不是 “使它们无法被不受信任的代码卸载”,则:

import sys
sys.modules['os'] = None
sys.modules['system'] = None

当然,没有模块system因此您可能是sys ,在这种情况下您会遇到麻烦。

如果您试图阻止不受信任的代码执行坏事,那么请看一下http://wiki.python.org/moin/SandboxedPython并意识到您正在做的事情并非立即可行。

不要导入它们。 通常,不要在模块内部执行不受信任的代码。 eval()看起来很漂亮,但几乎可以肯定不是您的朋友。

如果您打算对外部代码进行沙箱处理,请查看Python Wiki上的SandboxedPython文章。 在您阅读(并理解)那里的所有内容之前,请不要尝试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM