用个小技巧,趁你不备,rm -rf你的电脑

简介: 用个小技巧,趁你不备,rm -rf你的电脑

摄影:产品经理产品经理心心念念的荔枝小番茄

大家回想一下,你是不是遇到过这种情况:有时候,你访问一个网站,它突然给你下载了一个东西。特别是当你用 Chrome 的时候,浏览器直接就自动给你下载到“下载”文件夹里面去了,如下图所示:

而大多数时候,你只是把 Chrome 的这个提示关掉了,并没有去主动删除它下载的这个文件。于是这个自动下载的文件就留在了你的“下载”文件夹里面。

你想,我只要不去执行它,就不会有什么问题。但事实真的是这样吗?我们看看下面这张图。

python3 -m pip install requests

简单又熟悉的命令,我们都执行了无数次。今天却翻车了。电脑被格式化了。

问题出在哪里?问题出在这里:

当我们执行python3 -m pip install xxx的时候,Python 会在你当前运行这个命令的文件夹下面寻找有没有一个叫做 pip.py 的文件。如果有这个文件的话,那么你执行python3 -m pip install xxx相当于执行python3 pip.py install xxx。如果这个pip.py文件里面有恶意代码,那么你就翻车了。

恶意用户如果想攻击 Python 开发者,就可以自己做一个 Python 相关的网站,当用户访问网站的时候,悄悄下载一个 pip.py 到你的电脑上。如果有人碰巧在下载文件夹里面执行了 python3 -m pip install xxx想安装某个库,那么此时就会触发恶意攻击代码,从而让你中招。

特别是遇到不会科学上网的用户,他们直接使用 pip 常常会出现网络超时的问题,于是恶意网站“友好”地给他们提供.whl包的官方下载地址。用户一看,是官方地址,放松了警惕。这样一来,用户用浏览器从官网下载这个包时,正好也是下载到了“下载”文件夹里面。于是很多用户顺理成章地,直接

cd ~/Downloads
python3 -m pip install xxx.whl

于是悲剧就发生了。

目录
相关文章
|
6月前
|
人工智能 PyTorch API
Hunyuan3D 2.0:腾讯混元开源3D生成大模型!图生/文生秒建高精度模型,细节纹理自动合成
Hunyuan3D 2.0 是腾讯推出的大规模 3D 资产生成系统,专注于从文本和图像生成高分辨率的 3D 模型,支持几何生成和纹理合成。
703 5
Hunyuan3D 2.0:腾讯混元开源3D生成大模型!图生/文生秒建高精度模型,细节纹理自动合成
|
9月前
|
存储 Java
Bitmap位图(Java实现)
本文介绍了使用Java实现一个简单的Bitmap,通过自定义byte数组存储数据,提供put和exist方法分别用于插入数据和查询数据是否存在。Bitmap利用位操作高效地管理大量布尔值,适用于空间优化的场景。代码中详细解释了位图的核心原理、方法实现及边界检查。后续计划探讨位图在海量数据去重中的应用及JDK BitSet源码分析。
669 7
|
9月前
|
安全 Java 程序员
ArrayList vs Vector:一场线程安全与性能优化的世纪之争!
在 Java 面试中,ArrayList 和 Vector 是高频考点,但很多人容易混淆。本文通过10分钟深入解析它们的区别,帮助你快速掌握性能、线程安全性、扩容机制等核心知识,让你轻松应对面试题目,提升自信!
202 18
|
人工智能 API 决策智能
智胜未来:国内大模型+Agent应用案例精选,以及主流Agent框架开源项目推荐
【7月更文挑战第8天】智胜未来:国内大模型+Agent应用案例精选,以及主流Agent框架开源项目推荐
15069 134
智胜未来:国内大模型+Agent应用案例精选,以及主流Agent框架开源项目推荐
|
9月前
|
Python 容器
[oeasy]python048_用变量赋值_连等赋值_解包赋值_unpack_assignment _
本文介绍了Python中变量赋值的不同方式,包括使用字面量和另一个变量进行赋值。通过`id()`函数展示了变量在内存中的唯一地址,并探讨了变量、模块、函数及类类型的地址特性。文章还讲解了连等赋值和解包赋值的概念,以及如何查看已声明的变量。最后总结了所有对象(如变量、模块、函数、类)都有其类型且在内存中有唯一的引用地址,构成了Python系统的基石。
109 5
|
存储 Java
Java中利用BitMap位图实现海量级数据去重
Java中利用BitMap位图实现海量级数据去重
|
安全 Unix 程序员
程序员笑话常客:"rm -rf *" 和"rm -rf /*"的区别
"rm -rf *" 和 "rm -rf /*" 都经常出现在程序员的玩笑中,可他们的严重程度却是不一样的,一起来看看吧
7610 0
|
缓存 Kubernetes 数据库
大厂面试必问:如何设计一个扛高并发的系统?
高并发系统是指:在短时间内同时有大量用户请求访问系统,需要系统能够快速、稳定地响应这些请求。本文将讲述如何设计一个扛高并发的系统。
rm -rf / 真的能删除所有东西吗?
rm -rf / 真的能删除所有东西吗?
rm -rf / 真的能删除所有东西吗?
|
缓存 Java API
如何优雅的自定义ThreadPoolExecutor 线程池
java 中经常需要用到多线程来处理一些业务,非常不建议单纯使用继承Thread或者实现Runnable接口的方式来创建线程,那样势必有创建及销毁线程耗费资源、线程上下文切换问题。同时创建过多的线程也可能引发资源耗尽的风险,这个时候引入线程池比较合理,方便线程任务的管理
1311 0