Skip to main content
 首页 » 编程设计

python之不受信任的用户不应运行哪些内置函数

2025年05月04日11sxdcgaq8080

我正在创建一个在 django 上运行的 corewars 类型的应用程序,它允许用户上传一些 python 代码来控制他们的角色。现在,我知道真正的答案是,只要我从不受信任的用户那里获取代码输入,我就会存在安全漏洞。我只是想尽可能地降低风险。以下是一些我突然想到的:

  • __import__(我可能还会做一些 ast 扫描以确保没有任何导入语句)
  • 打开
  • 文件
  • 输入
  • 原始输入

还有其他我遗漏的吗?

请您参考如下方法:

在 http://wiki.python.org/moin/SandboxedPython 上有很多关于通常如何限制 Python 的答案。 .当我前段时间查看它时,Zope RestrictedPython 看起来是最好的解决方案,它使用白名单系统。您仍然需要注意自己的代码,以免暴露任何安全漏洞,但这似乎是目前最好的系统。