Python初学者请注意!别这样直接运行python命令,否则电脑等于“裸奔”!

uni-app蓝牙MTU设置失效探因:从20字节限制到跨设备兼容性实战 本文深入探讨了uni-app蓝牙开发中MTU设置失效的常见问题,特别是20字节限制的成因及解决方案。通过分析设备兼容性、蓝牙协议栈特性和系统版本差异,提供了智能延迟策略、设备特征检测和渐进式MTU提升等实战方案,帮助开发者优化蓝牙数据传输效率。 阅读详情

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是系统路径,因此这是一个非常安全的地方。

但是,有些人并不喜欢直接使用pip,而是更喜欢调用/path/to/python -m pip。

这样做的好处是可以避免环境变量$PATH设置的复杂性,而且对于Windows用户来说,也可以避免处理安装各种exe脚本和文档。

所以问题就来了,如果你的下载文件中有一个叫做pip.py的文件,那么你将它将取代系统自带的pip,接管你的程序。

下载文件夹并不安全

比如你不是从PyPI,而是直接从网上直接下载了一个Python wheel文件。你很自然地输入以下命令来安装它:

~$ cd Downloads
~/Downloads$ python -m pip install ./totally-legit-package.whl

这似乎是一件很合理的事情。但你不知道的是,这么操作很有可能访问带有XSS JavaScript的站点,并将带有恶意软件的的pip.py到下载文件夹中。

下面是一个恶意攻击软件的演示实例:

~$ mkdir attacker_dir
~$ cd attacker_dir
~/attacker_dir$ echo 'print("lol ur pwnt")' > pip.py
~/attacker_dir$ python -m pip install requests
lol ur pwnt

看到了吗?这段代码生成了一个pip.py,并且代替系统的pip接管了程序。

设置$PYTHONPATH也不安全

前面已经说过,Python只会调用系统路径、virtualenv虚拟环境路径以及当前主程序路径 你也许会说,那我手动设置一下 $PYTHONPATH 环境变量,不把当前目录放在环境变量里,这样不就安全了吗?

非也!不幸的是,你可能会遭遇另一种攻击方式。下面让我们模拟一个“脆弱的”Python程序:

# tool.py
try:
    import optional_extra
except ImportError:
    print("extra not found, that's fine")

然后创建2个目录:install_dir和attacker_dir。将上面的程序放在install_dir中。然后cd attacker_dir将复杂的恶意软件放在这里,并把它的名字改成tool.py调用的optional_extra模块:

# optional_extra.py
print("lol ur pwnt")

我们运行一下它:

~/attacker_dir$ python ../install_dir/tool.py
extra not found, that's fine

到这里还很好,没有出现任何问题。

但是这个习惯用法有一个严重的缺陷:第一次调用它时,如果$PYTHONPATH以前是空的或者未设置,那么它会包含一个空字符串,该字符串被解析为当前目录。

让我们再尝试一下:

~/attacker_dir$ export PYTHONPATH="/a/perfectly/safe/place:$PYTHONPATH";
~/attacker_dir$ python ../install_dir/tool.py
lol ur pwnt

看到了吗?恶意脚本接管了程序。

为了安全起见,你可能会认为,清空$PYTHONPATH总该没问题了吧?Naive!还是不安全!

~/attacker_dir$ export PYTHONPATH="";
~/attacker_dir$ python ../install_dir/tool.py
lol ur pwnt

这里发生的事情是,$PYTHONPATH变成空的了,这和unset是不一样的。

因为在Python里,os.environ.get(“PYTHONPATH”) == “”和os.environ.get(“PYTHONPATH”) == None是不一样的。

如果要确保$PYTHONPATH已从shell中清除,则需要使用unset命令处理一遍,然后就正常了。

设置PYTHONPATH曾经是设置Python开发环境的最常用方法。但你以后最好别再用它了,virtualenv可以更好地满足开发者需求。如果你过去设置了一个PYTHONPATH,现在是很好的机会,把它删除了吧。

如果你确实需要在shell中使用PYTHONPATH,请用以下方法:

export PYTHONPATH="${PYTHONPATH:+${PYTHONPATH}:}new_entry_1"
export PYTHONPATH="${PYTHONPATH:+${PYTHONPATH}:}new_entry_2"

在bash和zsh中,$PYTHONPATH变量的值会变成:

$ echo "${PYTHONPATH}"
new_entry_1:new_entry_2

如此便保证了环境变量$PYTHONPATH中没有空格和多余的冒号。

如果你仍在使用$PYTHONPATH,请确保始终使用绝对路径!

另外,在下载文件夹中直接运行Jupyter Notebook也是一样危险的,比如jupyter notebook ~/Downloads/anything.ipynb也有可能将恶意程序引入到代码中。

预防措施

最后总结一下要点。

如果要在下载文件夹~/Downloads中使用Python编写的工具,请养成良好习惯,使用pip所在路径/path/to/venv/bin/pip,而不是输入/path/to/venv/bin/python -m pip。避免将~/Downloads作为当前工作目录,并在启动之前将要使用的任何软件移至更合适的位置。

了解Python从何处获取执行代码非常重要。赋予其他人执行任意Python命令的能力等同于赋予他对你电脑的完全控制权!

希望以上文字对初学Python的你有所帮助。

关于Python学习指南

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python70个实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方优快云官方认证二维码或者点击链接免费领取【保证100%免费】

【Java面试题汇总】JVM篇(2026版) JVM内存模型、双亲委派模型、类加载机制、内存溢出、垃圾回收机制、内存泄漏、垃圾回收流程、垃圾回收器、G1、CMS、JVM调优 阅读详情

相关推荐

三运放仪表放大器电路设计全解析:从原理到PCB布局避坑指南

本文深度解析三运放仪表放大器电路设计,从差分放大器原理演进到经典三运放架构,详细阐述了其高共模抑制比(CMRR)和高输入阻抗的核心优势。文章重点剖析了电阻匹配、PCB布局对称性等关键设计要点对性能的影响,并提供了基于LTspice的仿真分析与从原理图到PCB布局、焊接调试的全流程实战避坑指南,助力实现高精度信号调理。

redis7keeper的博客 786

在Python中,你可以直接运行Python代码,无需进行编译。如果你有一个Python文件(以.py为后缀),你可以通过在命令行中输入 python filename.py 来运行该文件

在Python中,你可以直接运行Python代码,无需进行编译。如果你有一个Python文件(以.py为后缀),你可以通过在命令行中输入 python filename.py 来运行该文件。这说明你的Python代码已经成功地执行了。

m0_74288308的博客 793

告别谷歌翻译失效!手把手教你用Immersive Translate插件实现双语网页阅读(附Chrome/Edge/Firefox保姆级配置)

本文详细介绍了如何使用Immersive Translate插件实现双语网页阅读,解决谷歌翻译失效的问题。通过Chrome、Edge和Firefox的保姆级配置指南,帮助用户轻松安装和使用这款支持双语对照、智能识别网页内容的翻译插件,提升外文资料阅读效率。

weixin_28683689的博客 486

运行Python的方式

1、在Python交互环境下运行Python程序 2、借助工具代码编辑器notepad++,将Python程序保存为文件后运行

weixin_73365948的博客 1349

抖音无水印视频爬虫实战:从抓包分析到批量下载指定用户作品

抖音作为当前最受欢迎的短视频平台,拥有海量的优质内容。很多用户希望备份自己或他人的作品,但抖音官方并未提供批量下载功能,且直接下载的视频带有平台水印。本文将带领大家从零开始,通过抓包分析、设备模拟、请求签名等核心技术,实现一个完整的抖音无水印视频爬虫系统。本文仅供技术学习和个人备份使用,请勿将爬取的内容用于商业用途或侵犯他人版权,爬取频率请控制合理范围内。目录一、前言二、技术栈概览三、准备工作3.1 环境搭建3.2 抓包分析步骤3.3 关键API发现四、核心技术解密4.1 X-Gorgon签名算法。

2201_76125261的博客 846

Ardupilot飞控姿态角与姿态角速度控制过程分析(超长篇)

目录 目录 摘要 1.代码控制过程分析 摘要 本节主要记录自己学习ardupilot飞控代码的姿态角速度的控制过程 1.代码控制过程分析 可以看出:AC_AttitudeControl *attitude_control; //指针对象 virtual void rate_controller_run() = 0;是AC_AttitudeContro...

陌城烟雨 1万+

python程序运行方式几种_Python脚本之三种运行方式,你会几个?

一、交互模式下执行 Python这种模式下,无需创建脚本文件,直接在 Python解释器的交互模式下编写对应的 Python 语句即可。如果你Python刚入门,可以去小编的Python交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目1)打开交互模式的方式:Windows下:在开始菜单找到“命令提示符”,打开,就进入到命令行模式;在命令行模式输入: py...

weixin_39652646的博客 1268

利用大规模生物活性挖掘,计算识别针对癌基因驱动蛋白 EGFR、BRAF 与 CDK4 的高亲和力抑制剂

背景:精准癌症治疗需要小分子抑制剂与致瘤蛋白靶点之间的精确匹配。方法:我们使用 Python 及 ChEMBL 数据库 API 开发了一套计算流程,系统性地筛选针对 EGFR、BRAF 与 CDK4 的高亲和力配体。对 IC50 < 1000 nM 的生物活性进行过滤,并检索候选化合物的分子结构(SMILES)以供后续优化。结果:本研究共识别出 [插入总数] 种独特化合物。其中,对 BRAF 激酶而言,我们挑选了一批 IC50 低至 6.0 nM 的高效实验性化合物。

u012133341的博客 96

直接运行py文件

能否像.exe文件那样直接运行.py文件呢?在Windows是不行的,但是Mac和Linux上是可以的,方法是在.py文件的第一行加上一个特殊的注释 #!/usr/bin/env python3 然后,通过命令给.py以执行权限 chmod a+x hello.py 就可以直接运行.py了,如下 ./hello.py ...

weixin_42279610的博客 1363

① Django手把手从零开发个人博客-前言

手把手教你从零开始玩转手把手教你从零开始玩转Django,全面学习并了解django的运行机制、开发全流程及线上部署。Django,全面学习并了解django的运行机制、开发全流程及线上部署。 专栏介绍 本套教程遵循Django的设计思想,开门见山,快速切入主题,拒绝拖沓,在实战中学习每一个知识点,提高学习的趣味性以及个人成就感,并且能快速将所学运用到实际项目中。 将从零手把手带着你一步步完成博客的每一个功能,通过实现博客文章列表页、文章详情页、作者页面等功能来学习和了解django的视图查询模块相关知.

轻编程的博客 513

2023.03.27更新大麦网PC端抢购软件和使用教程

近期发现大麦网页端抢购页面悄然发生变化,之前可以在页面选择票价、档次,并且点击按钮进行购票,现在不行了,新的页面如下图所示。已经安全没有了点击按钮,因此,但是并不代表不能像以前之前那样。

猫敷雪 1万+

如何运行python代码(3种方式)

1、新建一个文本文档xx.txt,重命名xx.py(python源代码文件的格式后缀是.py)2、项目名目录上右键---new---python file,命名后回车即可。2、编辑xx.py写入print("hello world")并保存,退出。3、编辑文件内容,写入print("hello world")并保存。1、cmd进入命令行,输入python回车,即可进入交互式环境。2、输入print("hello world")回车,即可运行。4、在源文件上右键----点击run xx即可运行。

2401_86263843的博客 2万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

别这样直接运行Python命令,否则电脑等于“裸奔”!

如果你过去设置了一个PYTHONPATH,现在是很好的机会,把它删除了吧。当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。所以问题就来了,如果你的下载文件中有一个叫做pip.py的文件,那么你将它将取代系统自带的pip,接管你的程序。

白帽阿叁的博客 871

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

别这样直接运行Python命令,否则电脑等于“裸奔”

Python已经成为全球最受欢迎的编程语言之一。原因当然是Python简明易用的脚本语法,只需把一段程序放入*.py*文件中,就能快速运行。而且Python语言很容易上手模块。比如你编写了一个模块my_lib.py,只需在调用这个模块的程序中加入一行即可。这样设计的好处是,初学者能够非常方便地执行命令。但是对攻击者来说,这等于是为恶意程序大开后门。尤其是一些初学者将网上的Python软件包、代码下载的到本地文件夹后,就直接在此路径下运行python命令,这样做会给电脑带来极大的隐患。

Z4400840的博客 1097

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

打开python的pip命令时闪退_Python初学者请注意!别这样直接运行python命令,否则电脑等于“裸奔”...

原标题:Python初学者请注意!别这样直接运行python命令,否则电脑等于“裸奔” Python已经成为全球最受欢迎的编程语言之一。原因当然是Python简明易用的脚本语法,只需把一段程序放入 .py文件中,就能快速运行。而且Python语言很容易上手模块。比如你编写了一个模块 my_lib.py ,只需在调用这个模块的程序中加入一行 import my_lib即可。 这样设计的好处是,初学者...

weixin_39654436的博客 2120

运行python文件、电脑突然黑屏_Python初学者请注意!别这样直接运行Python命令,否则电脑等于“裸奔”...

原标题:Python初学者请注意!别这样直接运行Python命令,否则电脑等于“裸奔”本文经AI新媒体量子位(ID:QbitAI)授权转载,转载请联系出处晓查 编译整理Python已经成为全球最受欢迎的编程语言之一。原因当然是Python简明易用的脚本语法,只需把一段程序放入 .py文件中,就能快速运行。而且Python语言很容易上手模块。比如你编写了一个模块 my_lib.py ,只需在调用这个...

weixin_39638464的博客 1650

这样直接运行Python命令,电脑等于“裸奔”

1、如果要在下载文件夹~/Downloads中使用Python编写的工具,请养成良好习惯,使用pip所在路径/path/to/venv/bin/pip,而不是输入/path/to/venv/bin/python -m pip。这似乎是一件很合理的事情。Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。所以问题就来了,如果你的下载文件中有一个叫做pip.py的文件,那么你将它将取代系统自带的pip,接管你的程序。

Trb701012的博客 1009

Python初学者请注意!别这样直接运行python命令,否则电脑等于“裸奔”

点击上方“编程派”,选择设为“设为星标”优质文章,第一时间送达!Python已经成为全球最受欢迎的编程语言之一。原因当然是Python简明易用的脚本语法,只需把一段程序放入.py文件中,...

codingpy的博客 797

Python初学者请注意,别这样直接运行python命令,否则电脑等于“裸奔”

Python已经成为全球最受欢迎的编程语言之一。原因当然是Python简明易用的脚本语法,只需把一段程序放入.py文件中,就能快速运行。 而且Python语言很容易上手模块。比如你编写了一个模块my_lib.py,只需在调用这个模块的程序中加入一行import my_lib即可。 这样设计的好处是,初学者能够非常方便地执行命令。但是对攻击者来说,这等于是为恶意程序大开后门。 尤其是一些初学者将网上的Python软件包、代码下载的到本地~/Downloads文件夹后,就直接在此路径下运行pyth..

IT教育任姐姐的博客 800

python 运行电脑卡死_震惊!别这样直接运行 Python 命令,否则电脑等于“裸奔”...

编译整理:晓查 报道:量子位原文链接:http://dwz.date/dnzPython 已经成为全球最受欢迎的编程语言之一。原因当然是 Python 简明易用的脚本语法,只需把一段程序放入.py文件中,就能快速运行而且 Python 语言很容易上手模块。比如你编写了一个模块my_lib.py,只需在调用这个模块的程序中加入一行import my_lib即可这样设计的好处是,初学...

weixin_42516830的博客 1431

Python初学者请注意!别这样直接运行Python命令,否则电脑等于“裸奔”

来自:量子位 报道 | 公众号 QbitAI |编辑:技术君正文Python已经成为全球最受欢迎的编程语言之一。原因当然是Python简明易用的脚本语法,只需把一段程序放入.py文件中...

Oner.wv的专栏 217

python如果否则_别这样直接运行Python命令,否则电脑等于“裸奔”

原标题:别这样直接运行Python命令,否则电脑等于“裸奔”编译整理:晓查 报道:量子位原文链接:http://dwz.date/dnzPython已经成为全球最受欢迎的编程语言之一。原因当然是Python简明易用的脚本语法,只需把一段程序放入 .py 文件中,就能快速运行。而且Python语言很容易上手模块。比如你编写了一个模块my_lib.py,只需在调用这个模块的程序中加入一行import ...

weixin_39727105的博客 486

python必须用电脑吗_Python 初学者请注意!别这样直接运行 Python 命令,否则电脑等于“裸奔”...

点击上方“杰哥的IT之旅”,选择“星标”公众号重磅干货,第一时间送达 晓查 编译整理量子位 报道 | 公众号 QbitAIPython已经成为全球最受欢迎的编程语言之一。原因当然是Python简明易用的脚本语法,只需把一段程序放入.py文件中,就能快速运行。而且Python语言很容易上手模块。比如你编写了一个模块my_lib.py,只需在调用这个模块的程序中加入一行import my_lib即可...

weixin_33042659的博客 1444

电脑运行python后很卡_Python初学者请注意!别这样直接运行python命令,否则电脑等于“裸奔”...

晓查 编译整理 量子位 报道公众号 QbitAIPython已经成为全球最受欢迎的编程语言之一。原因当然是Python简明易用的脚本语法,只需把一段程序放入.py文件中,就能快速运行。而且Python语言很容易上手模块。比如你编写了一个模块my_lib.py,只需在调用这个模块的程序中加入一行import my_lib即可。这样设计的好处是,初学者能够非常方便地执行命令。但是对攻击者来说,这等于...

weixin_39636857的博客 801
上一篇: 可以向同事炫耀的10个Python技巧
下一篇: 分享我是如何在六个月内学会 Python 的?
普通网友
博客等级 码龄3年 4493粉丝 309原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值