【发布时间】:2016-05-30 09:12:16
【问题描述】:
在 Python 中,可以编译 Python 脚本而不执行(在 C 中使用 py_compile 模块,Py_CompileString)。
关于尝试对 CPython 进行沙盒处理的问题(以及它的难度)有很多文章,但是,我很想知道在编译 CPython 代码中是否存在已知的安全风险(没有执行其内容)。
换句话说,是否有已知的安全性取决于运行:
python -m py_compile file_from_unknown_source.py
在这种情况下,不良行为者可能能够在解析器或字节码生成器中找到漏洞,我的问题是关于这一点,以及是否有已知的漏洞可以执行此类任务,或者这通常被认为是安全的。
就本题而言,安全意味着:
- 无法运行任意 Python 代码或 shell 命令。
- 无法删除、创建或访问文件
(当然除了编译好的pyc)。 - 无法使用系统上的网络连接。
简而言之,除了编译代码或使用无效输入编译失败之外,不要做任何事情。
【问题讨论】:
-
你说的“安全”是什么意思?
-
添加了一些说明
-
这不是重复的,问题是关于编译不受信任的代码而不执行的安全隐患。不问如何编译而不执行。
标签: python security python-3.x