编译整理:晓查 报道:量子位
原文链接:http://dwz.date/dnz
Python 已经成为全球最受欢迎的编程语言之一。原因当然是 Python 简明易用的脚本语法,只需把一段程序放入 .py 文件中,就能快速运行
而且 Python 语言很容易上手模块。比如你编写了一个模块my_lib.py
,只需在调用这个模块的程序中加入一行import my_lib
即可
这样设计的好处是,初学者能够非常方便地执行命令。但是对攻击者来说,这等于是为恶意程序大开后门
尤其是一些初学者将网上的 Python 软件包、代码下载的到本地~/Downloads
文件夹后,就直接在此路径下运行 python 命令,这样做会给电脑带来极大的隐患
别再图方便了
为何这样做会有危险?首先,我们要了解 Python 程序安全运行需要满足的三个条件:
系统路径上的每个条目都处于安全的位置
“主脚本” 所在的目录始终位于系统路径中
若 python 命令使用 -c 和 -m 选项,调用程序的目录也必须是安全的
如果你运行的是正确安装的 Python,那么Python 安装目录和 virtualenv 之外唯一会自动添加到系统路径的位置,就是当前主程序的安装目录
这就是安全隐患的来源,下面用一个实例告诉你为什么
如果你把 pip 安装在 /usr/bin
文件夹下,并运行 pip 命令,由于/usr/bin
是系统路径,因此这是一个非常安全的地方
但是